ファミコンのプログラム4 (567レス)
ファミコンのプログラム4 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: 名前は開発中のものです。 [sage] 2012/07/29(日) 14:19:03.64 ID: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/ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/1
2: 名前は開発中のものです。 [sage] 2012/07/29(日) 14:19:59.97 ID:a5QeqSA0 ■ソフトウェア開発者のサイト NES Hack Factory http://www.geocities.jp/kz_s6502/ D-Soft http://aqube.kir.jp/dsoft/index.html OBONO's Web Site http://homepage3.nifty.com/obono/ Family Assembler http://fuguri23.hp.infoseek.co.jp/FamAsm/ nurvle.com(NES) http://www.ash.ne.jp/~nurv/nes/ peacemay.net http://peacemay.net/ ファミコンソフト開発のおへあ http://stargate.game-server.cc/fc/ 第7サプライヤー http://seventhxevo.xxxxxxxx.jp/seventh/ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/2
3: 名前は開発中のものです。 [sage] 2012/07/29(日) 17:33:33.81 ID:h8AqcaeO マリオ2ってスコアなどのパラメータ表示に ディスクシステムのタイマー割り込み利用してたんだね 1だと0爆弾だったのに なんかどのサイトにも ディスクシステムのIRQタイマに関する記述があまりないんだよね・・・ どのアドレスを使うかはわかってんだけど 1カウントが何秒位なのかの載ってるとこがない・・・ 自分で測った感じだと カウンタに65535(MAX)を設定してみたところ 11フレーム中に5回割り込みが発生した 1回の割り込み毎に2.2フレームであるから 1/60*2.2=0.036666・・・秒、つまり 65,535カウント≒36,666,667n秒 よって 1カウント≒560n秒位 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/3
4: 名前は開発中のものです。 [sage] 2012/07/29(日) 17:44:08.71 ID:hixC6Gva 夢工場のことか? スーパーマリオUSAか? NESのマリオ2か? http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/4
5: 名前は開発中のものです。 [sage] 2012/07/29(日) 17:52:48.30 ID:h8AqcaeO >>4 ディスクシステムのスーパーマリオブラザーズ2 でも>>3の計算だと少し精度が甘いからラスタスクロールとか使うときは NMIが起きるごとに再設定した方が確実だろうね それからRAMアダプタに入ってる水晶は21.47727MHzだったから 21,477,270*0.00000056≒12 つまり12分周されたクロックが入ってるっぽい (つまりファミコンのMPUと同じ1.79MHz) あとタイマーへのクロックを何分周するか変えられないのだろうか $4022になにか知らないオプションもありそうな気がしてならない http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/5
6: 名前は開発中のものです。 [sage] 2012/07/29(日) 18:11:08.04 ID:hixC6Gva >ディスクシステムのスーパーマリオブラザーズ2 そういえばそんなのあったな すまんボケまくったw http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/6
7: 名前は開発中のものです。 [sage] 2012/07/29(日) 18:15:32.39 ID:hixC6Gva 結局はエミュのソース見ちゃえばいいんですよ ディスクシステムなら日本人エミュ作者のがいい http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/7
8: 名前は開発中のものです。 [sage] 2012/07/29(日) 18:39:34.34 ID:hixC6Gva 見てきたらCPU同様の1.79MHzのカウンタのようです CPUのクロックは12分周が基本だから それ以上でもそれ以下でもメリットは無いでしょ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/8
9: 名前は開発中のものです。 [sage] 2012/07/29(日) 19:03:19.68 ID:h8AqcaeO >CPUのクロックは12分周が基本だから >それ以上でもそれ以下でもメリットは無いでしょ まあそうなんだけどね http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/9
10: 名前は開発中のものです。 [sage] 2012/07/29(日) 20:16:49.27 ID:rQX8VRkF 何秒とかそんな世界じゃ無い。 何クロックと考えた方が良い。1h=約113.7クロック http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/10
11: 名前は開発中のものです。 [sage] 2012/08/02(木) 00:39:42.04 ID:pHdQmVv7 なんでファミコンは描画中 PPUアドレス空間にアクセスできないようにしたんだろうね・・・ やはりコストからか http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/11
12: 名前は開発中のものです。 [sage] 2012/08/14(火) 22:43:48.52 ID:3GTdhVqH アクセスできないんだっけ、アクセスすると異常なデータが読めるとかでなく http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/12
13: 名前は開発中のものです。 [sage] 2012/08/15(水) 01:00:01.72 ID:NFZzBwkk アクセスはできるけど$2006自体が現在の画面描写位置そのものだから 画面表示が引きずられちゃう http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/13
14: 名前は開発中のものです。 [sage] 2012/08/24(金) 23:22:57.17 ID:EDbXndLG ファミコンほど理解しやすいハードウェアって なかなかない気がする http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/14
15: 名前は開発中のものです。 [sage] 2012/08/24(金) 23:47:20.82 ID:fbm4SP4s >>14 あの頃のPCだとほとんど同じような感じだったと思うけどな MSXとか感覚的にはファミコンとほぼ同じというかもっと簡単だけど あの頃は個人レベルでハードウェアの隅々まで理解できる環境が多かったな http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/15
16: 名前は開発中のものです。 [sage] 2012/08/29(水) 00:13:52.29 ID:dCbNSnnq 0爆弾で画面2分割し、 上は縦スクロール、下は固定(「沙羅曼蛇」のような画面)に挑戦しています 0番スプライトを画面左端に持ってきて、左端8ピクセルを$2001で隠すと $2002のヒット検出はできないでしょうか ためしにやった所 G-NES:できる VirtuaNES:できる 実機(AV仕様):できていない(下画面が描画されない。左端クリップ無ければできる) おそらく実機PPUの仕様かと想像しています。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/16
17: 名前は開発中のものです。 [sage] 2012/08/29(水) 09:34:26.48 ID:XGVG2N0d マッパー変更してIRQ使えるやつで やるってことじゃだめなのか? 実機でできないなら、できないものなんだろ 0spriteを1dotだけのものにするとか、回避策はいろいろあるだろう http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/17
18: 名前は開発中のものです。 [sage] 2012/08/29(水) 10:01:11.44 ID:i4hq19i2 開発の止まったエミュ持ち出していまさら何がしたいのか理解に苦しむ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/18
19: 名前は開発中のものです。 [sage] 2012/08/29(水) 18:07:15.63 ID:KHvPZkYe 単純に考えると、 ・クリップ領域から出るように、左から9ピクセル目に仕掛ける ・1つ前のラインの右端に仕掛ける。 のどちらかで出来ると思うんだけど。 クリップ領域に0爆弾置いたら不発になるのは、0爆弾はスプライトを表示するタイミングに依存してるからでないの。 つまり、クリップした区間ではスプライトの表示処理自体がスキップされるとかそういう理由で。 俺、0爆弾なんて使わないから想像なんで違ってたらすまんが。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/19
20: 名前は開発中のものです。 [sage] 2012/08/29(水) 18:11:14.26 ID:G0Y2hDxx 左端だと描写中だからおかしくなって当然だろ HBlank中に掛かるように右端でやれよ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/20
21: 名前は開発中のものです。 [sage] 2012/08/29(水) 19:00:35.13 ID:V0VP3qcd すごくザックリ&うろ覚えで申し訳ないのだけど、 背景ピクセルの上に0番スプライトのピクセルを重ねて、ピクセルを描画。 → このとき、描画したピクセルが透明色でなければ、 $2002の[6]番目のビットが立つ。 → このとき、描画したピクセルが透明色ならば、 $2002の[6]番目のビットは立たない。 って感じじゃなかったっけ? クリップで強制的に透明色にされた背景ピクセル+強制的に透明色にされた透明スプライト=透明色 なので、0爆弾がヒットしないんじゃないかと。 実機もないし、エミュで試してもいないので、想像ですまん。 てか、過疎っぽく見えて、読んでる人いるんですねw http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/21
22: 16 [sage] 2012/08/29(水) 21:37:22.64 ID:3N5g/q8u ありがとうございます やっぱり0スプライトを左端、というのは いい方法じゃないですね 右端に置くとか、IRQ割り込みとかでやってみます 0番スプライトでやるとなると、BGもひと工夫が必要ですね http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/22
23: 名前は開発中のものです。 [sage] 2012/08/30(木) 00:13:48.09 ID:2dcDlWaJ >>16 ヒット検出しないのが正解だろうね。 実機でそうなったんだし。 上から覆い隠してる訳ではなくキャラクタを表示していない(と俺は考えてる)のだから、ヒットしなくて当然と思うけど。 左端がダメとかは、関係ない。横スクロールの指定はいつでもできる。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/23
24: 名前は開発中のものです。 [sage] 2012/08/30(木) 04:48:24.33 ID:YFBZ+1yV 検出してからレジスタ叩いてるクロック分だけ画面描画進んでるから 次のラインまで最低でも12クロックはズレたままでしょ ライン単位での描画しかサポートされてないエミュだと再現できないけど http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/24
25: 名前は開発中のものです。 [sage] 2012/08/30(木) 23:09:45.06 ID:mbhkbHVJ >>23 がはぼ正しい >>20 はどちらかというと間違い HBlank中が必須というわけではない >>24 のようにCPUがフェッチ&デコード&実行&ライトやってる時間にも、PPUのドットは結構動くことに注意 普段はG-NESの使いやすいデバッガでデバッグ。 使いやすいVirtuaNESやNNNesterJでおおまかな確認。 際どいタイミングが必要なデバッグはFCEUXとNintendulator。 Nestopiaでタイミングの最終動作確認。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/25
26: 名前は開発中のものです。 [sage] 2012/08/31(金) 04:25:11.05 ID:qhg8Zh3g 大まかなデバッグはエミュでやって最終的に実機で動作確認してるわ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/26
27: 名前は開発中のものです。 [sage] 2012/08/31(金) 23:35:00.18 ID:gnF3SCUx 0爆弾の設置場所は捨てライン用意するならどこでもいいけど 右端なら画面に影響は出ないわな http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/27
28: 名前は開発中のものです。 [] 2012/10/10(水) 21:49:54.07 ID:Z4BAuN6X ファミコンゲーム作ってみたいんだけど時間がないんだよなー 現実的な問題がな http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/28
29: 名前は開発中のものです。 [sage] 2012/10/11(木) 19:34:39.57 ID:9I6Jco6V プログラミングにアセンブラから入った身だから 最初のうちはなれていたけど CとかC++とかASに触れていくにつれて 面倒になっていったな・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/29
30: 名前は開発中のものです。 [sage] 2012/10/12(金) 00:52:25.78 ID:Z8DOmKFZ ASってのはFlashですか? あぁそれはありますよね…。感覚というか形態が違いますからね…アセンブラは http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/30
31: 名前は開発中のものです。 [sage] 2012/10/12(金) 01:31:47.39 ID:EPkxezrz そうActionScript(2.0だけどw) 最初のうちは高級言語のクラスとかオブジェクト指向とか全く理解できなくて、 アセンブラ至上主義で6502とか8080とか8086とかいろいろ手を出してたんだけどね・・・ 6502向けのCコンパイラとかいいのないよね てかそもそも8bitCPUに高級言語使うのもおかしな話だけどさ 某C言語が使えたポケコンは、全然速くなかったよ さすがにBASICよりは速かったけど・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/31
32: 名前は開発中のものです。 [sage] 2012/10/12(金) 03:23:49.62 ID:fS+ezBRP そもそも6502でC言語を使う需要が無いしな Z80なら需要があって割とあるけど http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/32
33: 名前は開発中のものです。 [sage] 2012/10/12(金) 10:06:06.38 ID:H0vAZjLv cc65があるだろう。 最適化があまりうまくないけどな。 素人レベルだと十分だわ。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/33
34: 名前は開発中のものです。 [sage] 2012/10/14(日) 05:44:02.35 ID:XxvV8AOh Cは16bitな石からでいい。色々ともったいない。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/34
35: 名前は開発中のものです。 [sage] 2012/10/17(水) 13:25:16.84 ID:R5qyF0uk メガドラ以降ってことですか http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/35
36: 名前は開発中のものです。 [sage] 2012/10/18(木) 18:23:21.69 ID:VBrCRfaf 同じ6502でもPCエンジンだと、ハドソンが優秀なCコンパイラ作ってたりしたんだろか? http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/36
37: 名前は開発中のものです。 [sage] 2012/10/18(木) 19:42:59.84 ID:l5n3aOad SFC末期やプレイステーション頃まではC言語に出番はなかった。 C言語だけでリアルタイム処理なゲームを作って動かせる、それを配布できるってことは、今で考えるよりもずっと贅沢な事。 個人ユーザ中心のホビー分野ではそれなりに需要あったんだろうけど。 それとFDみたいに安いメディアかつ少数生産で済む16bit世代なPCゲーとか。 8bit機だと非力すぎる上にどうせ機種依存バリバリな処理系しかないからCで書いても他で流用のしようがない。 使うことにデメリットは多くても、メリットになる部分が全くと言っていいほど無い。 メガドラは時期的に言ってアセンブリ言語手書きだと思われる。 人間が手書きしても全然苦にならない整然としたアーキテクチャだったし、セガが発売したゲームがどれもROM容量ケチってるあたり、C言語使って容量無駄に使うことが許されたとは思えない。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/37
38: 名前は開発中のものです。 [sage] 2012/10/18(木) 20:01:24.07 ID:IES3MNvB しかし、Cで組むとなんであんなにコード太るんだろうな http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/38
39: 名前は開発中のものです。 [sage] 2012/10/18(木) 23:13:52.20 ID:63+xOnKC ただ単に、 当時は、ハードメーカーから提供されているのが アセンブラだけとかだったからだろう。 プログラムといえば、BASICかアセンブラという時代なんだから、 c言語がなくてもしょうがない http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/39
40: 名前は開発中のものです。 [sage] 2012/10/19(金) 08:19:37.01 ID:sjsgdMuz 当時を知らない人間は、そう考えるのね。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/40
41: 名前は開発中のものです。 [sage] 2012/10/21(日) 15:54:50.15 ID:JbO9yeZu アセンブラでやったって速度足りなくて神業が要るっていうのに なぜC厨が湧く http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/41
42: 名前は開発中のものです。 [] 2012/11/04(日) 00:17:55.67 ID:CsVJLmvl 実機的MMC1の初期化について書いておいた http://kohada.2ch.net/test/read.cgi/gameurawaza/1345225953/908-909 必要ならコピペでもなんでもどうぞ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/42
43: 名前は開発中のものです。 [sage] 2012/11/04(日) 21:10:23.38 ID:vueKXrfu 最近MMC1AとMMC1Bをいじったけど、電源投入時はバンクサイズ16kモードで後半の16kは最終バンクで確定してるみたい よく言われるように16k毎にベクターやリセットルーチンとかを設置する必要はなく、 32k毎の設置で一切問題はなかったので、リセットで偶数バンクが後半16kにあてがわれることはない模様 ファイナルファンタジーや三國志とかを見ると最終バンク以外にリセット等のベクタを置いていないから バンクサイズ16kで後半最終バンクFIXモードだと不定になることはなさそうな感じ 無印のMMC1が手元になく確認していないのでひょっとしたら仕様変更があったのかもしれないけど それとbit7立ててバンクの初期化って古いエミュだと実装されていないから GNESとかVirtuaNES使ってると理解できないのはしかたがないと思う http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/43
44: 名前は開発中のものです。 [] 2012/11/13(火) 20:19:26.33 ID:CAAAMru1 話割ってしまうけど、自作したデータを既存のROM内のデータと交換して売るのって違法なの?売っているのを見たことないんだが。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/44
45: 名前は開発中のものです。 [sage] 2012/11/14(水) 20:00:04.73 ID:ukh7V0Cy カートリッジは意匠があるからやるなら基板むき出しか。 でも動作保障とかめんどいからキット販売がせいぜいか。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/45
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 522 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s