ファミコンのプログラム2
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/12/21(水) 02:19:16ID:3YuJDfXD開発ツールはどこで手に入りますか?
0206名前は開発中のものです。
2006/03/02(木) 00:40:27ID:kJXN0J5Jブートしてすぐじゃねーかw
なので、何らかの初期化以外には考えにくい。
0207名前は開発中のものです。
2006/03/02(木) 01:25:22ID:EQsbAVB3thx!じっくり見てみます。
>>206
何の初期化してるのか気になるんだよw
0208名前は開発中のものです。
2006/03/02(木) 01:27:44ID:kJXN0J5J気になるかw
MMC3の割り込み関係じゃねーか?
あれPPUのアドレス線見てるから。
0209名前は開発中のものです。
2006/03/02(木) 01:49:48ID:J+ERitzr0210名前は開発中のものです。
2006/03/02(木) 21:18:07ID:EQsbAVB3Tracerつかってます。
0211204
2006/03/03(金) 00:40:06ID:2AY1Y+BW>>208の言うようにMMC3のIRQカウンターあたりを初期化してるんだろうか。
バイナリいじって処理すっ飛ばしても動いたし・・・。
0212名前は開発中のものです。
2006/03/03(金) 15:02:05ID:slh2KuyNオーバーフローフラグって演算した結果が-128(0x80)と127(0x79)をまたぐときに立つというのですが、
この場合、0x80-0x1がフラグが立つのは分るのですが、0x80-0xa0 = e0 の場合立たないようですが正しいのですか?
0x80-0xa0 = 0x80 + ~0xa0+1と考えると確かに0x79を跨いでないわけですが。
cmpやdecがアキュムレーターからオペランドを引いた結果でステータスフラグを変化させるという場合、
符号なしの8ビットか符号ありの8ビットかでキャリーフラグやオーバーフローフラグの結果が違いませんか?
ファミコンの場合どうなんでしょうか?
0213212
2006/03/03(金) 15:14:33ID:slh2KuyNファミコンの場合どうなんでしょうか?と書きましたが他のハードの場合のこともまだ良く知りません。
0214名前は開発中のものです。
2006/03/04(土) 00:56:30ID:WPjnZDiF0215名前は開発中のものです。
2006/03/04(土) 02:16:12ID:uDwDHKqH-128〜127からははみ出てない
>符号なしの8ビットか符号ありの8ビットか
なんてのはこっちが意識しなくちゃならん話だから
符号無しとして考えてるならオーバーフローフラグは見ないし
2バイト長以上で使うならキャリーフラグも見る
こんなんでどう?
0216名前は開発中のものです。
2006/03/04(土) 11:55:58ID:n9pc+DF10217名前は開発中のものです。
2006/03/04(土) 15:34:35ID:wmqT5dlp0218名前は開発中のものです。
2006/03/04(土) 17:35:15ID:kR8s56WR0219213
2006/03/04(土) 18:41:01ID:CCO2P6bycmpはVフラグ関係ないのでしたか。勘違いしてました。
decは書き間違えてしまいました。sbcのつもりでした。
>>215>>216さん
なるほど。つまり演算の結果だけを考えてやれば良いのですね。途中の経路は考えないでよいと。
みなさんありがとうございました。
0220名前は開発中のものです。
2006/03/05(日) 01:19:50ID:jnoC2dGbじゃあ何がいいの?
0221名前は開発中のものです。
2006/03/05(日) 11:32:04ID:NMhwKncH0222名前は開発中のものです。
2006/03/05(日) 17:25:11ID:suatdPLO0223名前は開発中のものです。
2006/03/05(日) 17:32:40ID:zxUnKLUO0224名前は開発中のものです。
2006/03/06(月) 11:08:12ID:qqWLxZKzやっべそれ初耳っす
0225222
2006/03/06(月) 13:04:12ID:LoDqGF2/NMIルーチンとメインルーチンでそれぞれにあるのですが、mmc1レジスタを(0x80を書き込んで)リセットしてるようすがないのです。
http://emu-docs.org/NES/Mappers/mappers.txt
などでは、mmc1は5回書き込むと反映されると書いてあり、ドラクエ3のロムの場合、通常は5回づつ連続して書き込んでいるため問題ないのですが、
NMI外で0xFFFFに書き込んでいる途中でNMIが発生する場合があり、その場合はリセットしなくてはおかしくなるはずですよね?
(gnesのデバッガでみると、この場合もNMI後にはリセット無しで新しく5回カウントしてるようです。)
エミュを自作中なんですが、いつもこの部分で挙動がおかしくなるので困っています。
んでincでもリセットさせたら動くようになったので、もしや>>222のようなことなのかと思ったしだいですが、やっぱり初耳ですか。
じゃ、どこでリセットしてるんだろ。種類の違うレジスタに書き込むとリセットするとかあるんでしょうか。
0226224
2006/03/06(月) 14:10:15ID:qqWLxZKz俺も自作のエミュにそんな特殊機能つけてなかったっす。
そういやDQ3でテストしたこと無かったんでちょっとやってみます。
0227224
2006/03/06(月) 14:33:00ID:qqWLxZKzよく見てないけど$6A58に書き込もうとしてエラー回避でストップしてる。
そういえば輸出用のrockman2でも$42FF書き込みという特殊?なのがあったな。
あれはたしかPPUのミラーリング方式の変更だっったか。
0xFFDCもきっと何か意味があるね。
virtuaNESのソースでも探ってみます
0228名前は開発中のものです。
2006/03/06(月) 14:55:40ID:GD0CYf0kmappers.txtは全然当てにならないな。あれに載ってる通りにやって動くのは2種類ぐらいじゃない?
nester系のマッパー1の実装方法で動かないなら、ほかに原因があると思われ。
0229名前は開発中のものです。
2006/03/06(月) 15:32:51ID:qqWLxZKzマッパーってNESの解析した人たちが勝手に作った気がするんですがどうなんでしょう?
きっと任天堂のNES仕様自体にはマッパーなんてなくて、
ここのアドレスに書き込むとこう動くってのが細かい仕様が
全ROM共通であるだけじゃないのかと思う。
上でも書いた$42FFもRockman2のmapper2には存在しないけど、
他のmapperには$42FFが存在して、rockman2で期待してると思われる動作内容になってる。
0230名前は開発中のものです。
2006/03/06(月) 15:36:18ID:qqWLxZKzというか、持ってるDQ3のROMがmapper2なんだが、
もちかしてこれハックロムかorz
0231名前は開発中のものです。
2006/03/06(月) 15:40:48ID:qqWLxZKzvirtuaNESではとくに何も特殊処理をやってなさそうです。
0232名前は開発中のものです。
2006/03/06(月) 15:49:41ID:XXjCEeRW自 分 で 吸 い 出 し て い な い の か
0233名前は開発中のものです。
2006/03/06(月) 15:55:44ID:qqWLxZKz結局判らんみたいだがなんか機能はあるっぽい
0234名前は開発中のものです。
2006/03/06(月) 15:58:36ID:qqWLxZKzorz
しかも>>233はSNESぽい。よく読めばよかった。
今度こそ消えます
0235名前は開発中のものです。
2006/03/06(月) 16:16:11ID:GD0CYf0k0236名前は開発中のものです。
2006/03/06(月) 17:22:57ID:e/8kzKo+そうなんですか。二つって言ったらマッパー2と3だけですかw
>nester系のマッパー1の実装方法で
nesterJのソース見たらレジスタが変わったらリセットするみたいですね。コメントまで書いてあった。
mmc1レジスタ3へのincもそのあとに実行するレジスタ0への書き込み時にリセットを確保するためみたい。
手許にあるエミュのソースにはどれも書いてなかった。(これらはどれも今の環境じゃ実行できないから
確かめられないエミュだけど、たぶんドラクエ3はうまく動かないんでしょう。)
>>230
なんかDQ3をマッパー2って説明してある資料も幾つかありますね。キャラクターバンク数0だからか?
あと>>233の情報ありがとう。
0237名前は開発中のものです。
2006/03/06(月) 23:18:24ID:kz442hcPあんたエミュ作ってるのか。
>>222
FFD9: inc $FFDF
FFDF: db 80
>>222
FFD9: inc $FFDF
FFDF: db 80
inc命令では80を$FFDFのメモリから取ってきて、@
CPU側で1+して、
再び$FFDFに81を書き込むということになる。A
だから$E000〜$FFFFに81を書き込んだのと同じなので、
mmc1はリセットされる。
私の記憶が確かならば、リセットの場合は1度書きでよかった。
mmc1は汎用過ぎるだけあってとっても曲者。
WRAMのオンオフが…とか
特殊カセットでWRAMのバンク切り替えが…とか
DQ4って実は特殊カセット…とか
0238名前は開発中のものです。
2006/03/06(月) 23:23:27ID:kz442hcP@,Aを分けるような実装しないとまともに動かんよ。
例えば、inc $FFDFだからといって、
ただメモリのFFDFを++するだけの実装じゃだめだ。
ちゃんとAの時にバンクチェンジのレジスタにアクセスするような実装にしないとね。
0239名前は開発中のものです。
2006/03/07(火) 00:25:06ID:1hhZGiwmああ、なるほどなるほど。目から鱗です。そういう理屈なら、FFDFが0x80だと気が付いていたらnesterのソースを参照しなくても感が良ければ解決してたかもしれないのでしたか。
となると、手元にあるエミュにnesterJの処理がないのは問題では無かったのですか。
あと、他のメモリにマップされたレジスタとかも、例えばリードで初期化されるようなものとか気をつけなくてはならない所もあるということですね。
>DQ4って実は特殊カセット
そうなんですか。こんどmmc1の512K以上のromの対応を行ってドラクエ4をプレイできたらと思っていたので肝に銘じて取り掛かります。
0240↓エミュ作りでは気にしなくていいよ。あくまで実機
2006/03/07(火) 01:42:17ID:6I1DJuNqmmc1レジスタの
$A000 - $BFFF と
$C000 - $DFFF は本来CHR-ROMのバンクチェンジ「のみ」に使われるべき(CHRアドレスバスのbit16〜12)、
$E000 - $FFFF はPRG-ROMに使われるべき(PRGアドレスバスのbit18〜14)。
DQ3では$A000-$BFFF,$C000-$DFFFの
bit3-0は、CHR bit15-12に対応し、(DQ3にはCHR-ROMないけど)
bit4はWRAMのオン:0 , オフ:1に対応する。(本来CHRbit16と考えるのが自然)
他のmmc1のセーブつきカセットは多分この仕様。
だが512KであるDQ4のROMとMMC1チップの結線を見るとちょっと違い、
$A000-$BFFF,$C000-$DFFFの
bit3-0は、CHR bit15-12に対応し、(DQ4にはCHR-ROMないけど)
bit4はPRG bit18に対応する。←ここがPRGなのが変則的で
資料が分かりにくくなってる理由でもある
WRAMオンオフは$E000-$FFFFのbit4(本来PRGbit18と考えるのが自然)。
0241↓こっちは実装すべき。本気モードなら
2006/03/07(火) 01:42:53ID:6I1DJuNq$A000 - $BFFF, $C000 - $DFFFのbit3(CHRbit15相当)は
WRAMの8Kバンク番号に相当(バンク番号は0か1)。
「蒼き狼と白き牝鹿 ジンギスカン」 : bank 1 をbattery-backed。
「ベストプレープロ野球スペシャル」「ファイナルファンタジーI・II」 :bank 0~1をbattery-backed。
「三國志 」「信長の野望 全国版」: 実機未確認(おそらくbank1のみbattery-bakedだろう。
VirtuaNESのソースをヒントにして
実機カセット開けて見た結果っす。
間違ってたらゴメンということで。
0242名前は開発中のものです。
2006/03/07(火) 16:56:53ID:c4EobbKX詳しい情報ありがとう。
自分は無いけど、こういうところはマイコンの知識とかあったほうがいいんでしょうね。
WRAMオンオフとか考えたことなかった。そういやセーブしても冒険の書が無い初期状態から始まる。
カセットを差したあとのsramをマップしたりの操作も、マッパーがやるわけですね。そんなことmappers.txtには書いてなかった。
#あと、>>236関連、マッパー3もmappers.txtの情報だけじゃ動かなかった(16Kロムの場合二箇所にマップする?ちがうかな)。
0243242
2006/03/07(火) 17:07:43ID:c4EobbKXちがうくなかった。
VirtuaNesのソースも見させてもらったけど、二箇所だった。
残念だが、やっぱ既存エミュのソース参考にしなきゃだめかも。
0244名前は開発中のものです。
2006/03/16(木) 10:11:39ID:2msY1tln0245名前は開発中のものです。
2006/03/16(木) 15:37:10ID:6/99YGI2すげーーー。回路さっぱりなオイラからするともはや神を超えてる
0246名前は開発中のものです。
2006/03/18(土) 08:24:23ID:1laqRTnI開発履歴の最初に全米が泣いた
>> 1991.6.20ファミリーコンピュータを親から買ってもらう
SFC出てるのに・・・
0247名前は開発中のものです。
2006/03/18(土) 18:00:02ID:bCX0QQVv簡単に説明汁
0248名前は開発中のものです。
2006/03/18(土) 18:33:22ID:WrCmp9hK当然CPUやPPUも自作ということ
0249名前は開発中のものです。
2006/03/18(土) 18:40:52ID:WrCmp9hKFPGAっていうプログラミング可能なディジタル回路を
VHDLという言語で記述して、ファミコンを再現してる。
おそらくアナログ部分は外付けかと。
0250名前は開発中のものです。
2006/03/18(土) 18:44:51ID:WrCmp9hK自分で>>244読んで脳内修正しておいて。
0251名前は開発中のものです。
2006/03/20(月) 14:34:38ID:IptBCkUV0252名前は開発中のものです。
2006/03/24(金) 23:14:02ID:M48qEDSoありえないかな?
0253名前は開発中のものです。
2006/03/25(土) 01:01:36ID:cRvZg9AL自作NESについては外国の方がなんとかしてくれるはずw
0254名前は開発中のものです。
2006/03/31(金) 16:50:24ID:6Svs3Q5E>>245が低脳なだけです。
0255名前は開発中のものです。
2006/04/02(日) 00:45:35ID:IVE6Qv5y0256名前は開発中のものです。
2006/04/02(日) 01:49:58ID:Jseo5NcAは?氏(ryねよ
0257名前は開発中のものです。
2006/04/02(日) 10:57:25ID:wOWlJ1Ff0258名前は開発中のものです。
2006/04/03(月) 23:20:44ID:fraYUocR0259名前は開発中のものです。
2006/04/04(火) 06:37:12ID:SWfItVmb0260名前は開発中のものです。
2006/04/04(火) 10:46:33ID:HDFKdFtC0261名前は開発中のものです。
2006/04/04(火) 17:31:02ID:2LoKVi8j計算しないで全アニメーションのフレーム数分
すべての点の座標を持って描画するだけ…それでも結構重そう。
0262名前は開発中のものです。
2006/04/04(火) 20:57:07ID:vNpvjFJeROM領域でもDMA転送出来るから、バンク切り替えで比較的楽に出来ると思う。
0263名前は開発中のものです。
2006/04/05(水) 02:23:12ID:QqqIEYU0これって3Dデモって言えるかわからんけど、dmaていうとスプライトってことで、64枚だけしかつかえないわけだから、それよかvrom切り替えたほうが良いのと違うの?
0264名前は開発中のものです。
2006/04/05(水) 07:15:56ID:69xhiahUFCでもそれっぽいものは可能なんだろ?
0265名前は開発中のものです。
2006/04/05(水) 07:32:20ID:bw5UEujg64ドットでできる形状をコントローラでぐりぐりまわすだけでも
毎秒2、3コマとかになる気がする
0266名前は開発中のものです。
2006/04/05(水) 09:56:47ID:0LL1+U/K0267名前は開発中のものです。
2006/04/05(水) 10:04:35ID:R2WZogHl263だけど
スプライトならそういう使い方できるのでしたか。
1枚1ドットなんて考えなかった。
0268名前は開発中のものです。
2006/04/05(水) 13:03:38ID:LMK8UCKz64枚のスプライトデモ
http://nesdev.icequake.net/Polar.zip
スプライト使ってるのでNNNesterJだと消えまくってる・・・
0269名前は開発中のものです。
2006/04/05(水) 23:28:54ID:z87c2s1+欧州のどっかの国のFなんとかってゲームの事だと思うが、
あれはワイヤーフレームでは無いぞ。
スプライトでそれっぽく見せてるだけ。
てかファミコンでワイヤーフレームはハードウェア的に
不可能って事も知らないのか。
0270名前は開発中のものです。
2006/04/06(木) 02:45:59ID:0ap+8sI80271名前は開発中のものです。
2006/04/06(木) 03:09:09ID:WmN1/F/r0272名前は開発中のものです。
2006/04/06(木) 09:46:19ID:zeqxhJt70273名前は開発中のものです。
2006/04/06(木) 10:05:53ID:2H4oC39P0274名前は開発中のものです。
2006/04/06(木) 23:52:47ID:uSlPMoanスレタイ1000回タイプしてから出直してこい
0275名前は開発中のものです。
2006/04/07(金) 00:22:43ID:XQ/JAzow0276名前は開発中のものです。
2006/04/07(金) 14:35:49ID:dbCZ4PvFttp://nesdev.parodius.com/nestank.zip
すごい単純表示だけど。エミュによっては表示が崩れるし。
0277名前は開発中のものです。
2006/04/07(金) 23:05:58ID:OFkaHsGk0278名前は開発中のものです。
2006/04/08(土) 03:13:39ID:8qYMIVpr0279名前は開発中のものです。
2006/04/08(土) 06:52:54ID:Asx3+NSLhttp://news18.2ch.net/test/read.cgi/news5/1131273225/741
0280名前は開発中のものです。
2006/04/08(土) 08:41:05ID:ocn76T/qGBは4階調
FCは4色
この違い分かるかな
0281名前は開発中のものです。
2006/04/08(土) 22:01:57ID:dB8r8Uh2そういう問題じゃないような気が・・・
4色じゃないし
0282名前は開発中のものです。
2006/04/08(土) 22:32:26ID:VlFo+ji1さらにパレットとして指定できるのは32色
BGで4色*4
スプライトで4色*4
1つのスプライトで使えるのは4色だけどその内1色は透明色だから実質3色
BGのタイル1つ(8*8)で使えるのは4色(内1色は透明色)しかし2*2の4つごとにしか設定できない。
こうしたところで「色」という字がゲシュタルト崩壊
0283名前は開発中のものです。
2006/04/08(土) 22:43:44ID:dB8r8Uh2別にどうでもいいって言えばどうでもいいことなんだけど
なんでBGの0番じゃないんだろう?
0284名前は開発中のものです。
2006/04/09(日) 02:47:59ID:tgWOJxAE0285名前は開発中のものです。
2006/04/09(日) 06:55:11ID:k5KEnpqfXの事を言ってるんだと思うけど
絶対違うと思うぞ。
任天堂が初めて3Dやったのは多分
SFCの、スーパーFXチップって拡張チップを積んで初めてだから。
ファミコンのアーキテクチャを知ってれば
ワイヤーフレームはハードウェア的に不可能だって
わかるはずだと思うが。
って俺ムキになりすぎ
0286名前は開発中のものです。
2006/04/09(日) 07:40:45ID:tgWOJxAE当然チップなんか積んで無い。3Dデモ程度ならゼルダでも出来てるし、フロントミッションでもローポリ表示させてる。
画面の好きなところにドットを打てないから不可能とか、的外れもいいところだな。
0287名前は開発中のものです。
2006/04/09(日) 07:51:43ID:VciJYwi/ハードウェア的に不可能だとどうしてソフトウェア的にも不可能になるんだ?
0288名前は開発中のものです。
2006/04/09(日) 07:54:14ID:/zuNaXwuハードのどんな機能が必要だと思ってるのか、と
「ワイヤーフレーム」がどの程度のものを考えてるのか、もう少し具体的に説明してくれ
0289名前は開発中のものです。
2006/04/09(日) 11:04:03ID:bPU8S2hl>>287
>>288
ぜひ自分で作ってみてほしい
そして完成したら教えてほしい
0290名前は開発中のものです。
2006/04/09(日) 12:56:39ID:Z+qDlf0bファミコンでドットグラフィックスをやってるデモロム。
0291名前は開発中のものです。
2006/04/10(月) 18:45:37ID:Qkr0SNJiMMC5がnsfのドライバでも使ってるのでイイかと思ったけど制御が複雑すぎ。
MMC3というのもあるけど512KBまでしか動かないらしい。
PCMのデモを見つけてソースを分析。マッパー#2を使用してる。
また、NESASMでは64ページ以上のPRG-ROMはダメらしいつまり
開発の上限は1024KB、1メガバイト。
たったの1メガバイト…何が出来るだろう。
>>257さん、NESに詳しいのでしたらどのマッパーが一番
容量を大きく作れるでしょうか。ディスクは無しで。
出来たら画像を表示するサンプルを作ってみて
いただけないでしょうか。
0292名前は開発中のものです。
2006/04/10(月) 18:59:31ID:LhWjP7Nxサンプルはここを見ればよし
ttp://www.geocities.jp/kz_s6502/nesdemo/airdemo.html
画像を多く使いたいならNESにこだわる必要は無いと思うよ
0293名前は開発中のものです。
2006/04/11(火) 00:12:21ID:9spylhc5これってワイヤーフレームとは言わないのか?
0294名前は開発中のものです。
2006/04/11(火) 03:34:51ID:MKuGPSCR0295名前は開発中のものです。
2006/04/11(火) 05:32:51ID:UPOvrKAGあくまでも擬似だろう。
まあワイヤーフレーム扱いでもいいと思うけど。
0296名前は開発中のものです。
2006/04/11(火) 21:03:34ID:454Iw88x0297名前は開発中のものです。
2006/04/11(火) 21:38:49ID:zrkEL5pk0298名前は開発中のものです。
2006/04/12(水) 05:10:48ID:MCS8c1am全然凄くない
0299名前は開発中のものです。
2006/04/12(水) 07:16:31ID:/zPv2MUpじつはそのサイトすでにMMC5でググったときに発見したんです。
MMC3が512KBというのもそこからの情報です。
スゴイですよねAIRは知りませんが興味がわきました。
そのくらい力のこもったデモです。
そこのソースやMMC5の仕様書を探してきて僕には
ちょっと理解できないかなと・・・時間をかけて自分で分析してみます。
$8000に番号を設定するだけの単純制御のマッパー#2がやっぱり好みです。
0300名前は開発中のものです。
2006/04/12(水) 09:35:34ID:HwQjafm3nesdevにも2KB以下の物置いてあるけど、音とか動きありの表現の多彩さという点から見れば、このコンパクトさは秀作の部類に入るだろうね。でもどうせMMC3でやるならIRQカウンタ利用でもちょっとだけ面白いこと出来そう。
0301名前は開発中のものです。
2006/04/12(水) 09:55:05ID:VvFnFpKN遊び方が分からなくて速攻で捨てた。
どうやって遊ぶの?
0302名前は開発中のものです。
2006/04/12(水) 10:16:17ID:Bt41zxjq>>279のスレ読んでみると分るけどこれゲームじゃなくてNES使ったコテをからかうネタらしい。
0303名前は開発中のものです。
2006/04/12(水) 21:59:46ID:l1sjE/nd0304名前は開発中のものです。
2006/04/13(木) 08:18:37ID:RC0dscIbここのPCMで鳴らしてるヴィヴァルディって実機でも再現できるのか?
なんかここまで出来るとは思わなかった。
0305名前は開発中のものです。
2006/04/13(木) 19:08:07ID:E6DqOJJ4マッパー#2サンプル
なぜかネットのサンプルはCHR-ROMを使ったものが多いので
画像を転送するとこは調べて実装しなきゃならなかった…
ゲーム中にサウンド鳴らしスプライトアトリビュート転送しながら
画像も転送するの大変そう。やっぱchr-rom切り替え方式の方がいいのかな?
#2はシンプルで扱いやすいゆえに腕しだい次第なんだろうど
マッパーによっては拡張機能があるのにそれを利用できないってのもありますね。
>304
nsfをやってる人はたぶん実機再生にこだわるのでしょうね。
ゲーム作りたい僕はいろいろ考えたあげく実機はあきらめ、
携帯機用エミュで動くかどうかむしろ気にしています。
■ このスレッドは過去ログ倉庫に格納されています