ファミコンのプログラム2
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/12/21(水) 02:19:16ID:3YuJDfXD開発ツールはどこで手に入りますか?
0157名前は開発中のものです。
2006/01/30(月) 12:47:11ID:5exg8d2W>>155の動作が正常です。
0158名前は開発中のものです。
2006/01/30(月) 12:59:40ID:7Yf44jRr真っ黒な空間に豆腐(スプライト)を表示させるだけとか。
0159名前は開発中のものです。
2006/01/30(月) 15:43:18ID:5exg8d2W0160名前は開発中のものです。
2006/01/30(月) 18:09:34ID:PtP9EnNBごめん。書き込んだ時には>>155は表示されてなかったもんで。
解決おめ
0161名前は開発中のものです。
2006/01/30(月) 22:29:40ID:02kWKfCxそこすぐ落ちるから、長持ちする他の場所にうpしてよ。
解決しならいらねーけど。
0162名前は開発中のものです。
2006/02/02(木) 15:01:37ID:gFEP4lus若いコは知らないだろうけど、ファミコンて8個スプライトが
並ぶとそれ以上は表示できないんだよ
エミュレータではたぶん表示できるんだろうね
0163名前は開発中のものです。
2006/02/02(木) 18:40:46ID:yTGlVmzV0164名前は開発中のものです。
2006/02/02(木) 19:25:37ID:KwQELIZf0165名前は開発中のものです。
2006/02/02(木) 19:39:51ID:v6l9OAas0166名前は開発中のものです。
2006/02/03(金) 01:44:29ID:dK7GmIeAファミコンはオサレ世代か
0167名前は開発中のものです。
2006/02/03(金) 06:14:34ID:aQhPxSExこれって無限にスプライトを表示させることができるのか?
0168名前は開発中のものです。
2006/02/03(金) 07:02:01ID:4o0aSTs+弾?だけスプライトじゃなかったの?
0169名前は開発中のものです。
2006/02/03(金) 12:08:44ID:Z449ufZv横並び制限を解除
0170名前は開発中のものです。
2006/02/03(金) 13:40:45ID:Ta00PAZy0171名前は開発中のものです。
2006/02/05(日) 07:24:41ID:h3yRK8gG0172名前は開発中のものです。
2006/02/06(月) 23:39:02ID:Za2qy05rメインメロディーが消えるんだよな。
これは音の設定を変える処理を浮かせる為なんだろうか。
0173名前は開発中のものです。
2006/02/07(火) 00:03:58ID:Qlw+Xfn4効果音2つを同時に鳴らしたいので
どちらかはメインメロディーと同じ側の矩形波を使用するように設定されているってことでは。
0174名前は開発中のものです。
2006/02/09(木) 05:56:56ID:AcFFKrci0175名前は開発中のものです。
2006/02/11(土) 06:13:40ID:HxpXAjYU0176名前は開発中のものです。
2006/02/12(日) 07:58:35ID:fP8S6+Pb1バイト変数にしないとダメだな
0177名前は開発中のものです。
2006/02/12(日) 13:03:54ID:DjeWGN81nesasm
http://www.magicengine.com/mkit/
最新バージョン? http://www.zeograd.com/huc_download.php
ca65
http://www.cc65.org/
XORcyst
http://www.stud.ntnu.no/~kenth/xorcyst/
NESHLA
http://neshla.sourceforge.net/
C言語みたいな変なマクロが使える
WLA DX
http://users.tkk.fi/~vhelin/wla.html
0178名前は開発中のものです。
2006/02/12(日) 21:38:57ID:v7b6xuYf0179名前は開発中のものです。
2006/02/12(日) 22:18:57ID:dn8i0GqfNESの開発自体が辛い
0180名前は開発中のものです。
2006/02/13(月) 02:55:33ID:Gtc5I6Dfよーし、ゲーム作るぞ!ってとき、マッパーの選択で迷いますよね。
「ギコ猫でもわかるファミコンプログラム」もその話題のところで
途切れてる・・・
単純に最大容量のものを選べばいいんでしょうか・・・
それとも2000hとか細かく切り替えがきくものの方がいいんでしょうか。
0181名前は開発中のものです。
2006/02/13(月) 11:11:31ID:u8hRMgLt0182名前は開発中のものです。
2006/02/13(月) 16:08:16ID:9h9NyXAH0183名前は開発中のものです。
2006/02/16(木) 19:04:08ID:yXONji5a0184名前は開発中のものです。
2006/02/20(月) 10:04:10ID:oFGg/NSg03/FE86: 4A LSR
03/FE87: 26 09 ROL $09
くにおくんの時代劇の1Pのパッド入力を調べるとこだけど、こんな方法もあるんだね。
I/OレジスタからAレジスタへロード
↓
Aレジスタを右シフトでビット#0をCフラグへ
↓
メモリを左ローテートでCフラグからデータを入れる。
↓
8回繰り返してデータを溜める。
0185名前は開発中のものです。
2006/02/20(月) 12:00:13ID:4QSWCBab他にもあったらおせーて
0186名前は開発中のものです。
2006/02/20(月) 17:54:00ID:bkUHwmA40187名前は開発中のものです。
2006/02/21(火) 00:27:30ID:P6E0tMIcこの人のパッド入力の手法は?
0188名前は開発中のものです。
2006/02/24(金) 16:40:58ID:pKidOzJUギコネコでも分かる〜は専門用語を知ってることを前提で話を進めるから理解できん。
0189名前は開発中のものです。
2006/02/24(金) 20:02:52ID:kyUhytGE0190名前は開発中のものです。
2006/02/24(金) 21:56:34ID:mYOaHDEy0191名前は開発中のものです。
2006/02/25(土) 04:01:05ID:Zzfa1Vtp一つ一つの用語の意味を理解するのに、また用語が出てくるのに。
もっと単純に、ここはグラフィックを格納する場所、とかでいいんだよ。
0192名前は開発中のものです。
2006/02/25(土) 05:03:02ID:JLoubNl/そこまで単純化すると
実際に格納しているのがBGなのかスプライトなのか分からんがな。
一見遠回りに感じるかもしれないがもっと高級な環境から始めた方が
いいと思うがな。
0193名前は開発中のものです。
2006/02/25(土) 05:07:34ID:tMJ+2ce2無いと思うけど。
何がわからんのかここで聴いてみたら?
0194名前は開発中のものです。
2006/02/25(土) 08:51:35ID:IuSJXMuE調べる気がなかったら先へ進めない。
0195名前は開発中のものです。
2006/02/25(土) 11:38:37ID:PDIwAB3Oだからお前が何を専門用語と感じるかなんて誰もわかんねーんだよボケ
お前らみたいなクソを一人一人相手にしてくれるサイトなんてねえよ
0196名前は開発中のものです。
2006/02/25(土) 12:52:48ID:Zzfa1Vtp0197名前は開発中のものです。
2006/02/25(土) 23:10:40ID:6HJSpbUO0198名前は開発中のものです。
2006/02/25(土) 23:16:23ID:FKjx2hum丸覚えしとけ
0199名前は開発中のものです。
2006/02/26(日) 09:44:55ID:uI1Ri5ld0200名前は開発中のものです。
2006/02/26(日) 09:56:52ID:v6/tfNu8html少しかじった程度じゃ「ギコでも〜」が半分も理解できね。
0201名前は開発中のものです。
2006/02/26(日) 10:40:07ID:3AjziKLo0202名前は開発中のものです。
2006/02/26(日) 12:31:01ID:ORUkYK+eこのスレの中くらい全部読もうぜ
0203名前は開発中のものです。
2006/02/26(日) 21:24:18ID:eYVW3o6B俺って優しいなぁ
ttp://aqube.kir.jp/dsoft/famicom/6502.html
0204名前は開発中のものです。
2006/03/01(水) 23:40:59ID:wE/CNClHこの部分何してるか分かる人います?
07/FFCB: A9 10 LDA #$10
07/FFCD: AA TAX
07/FFCE: 8D 06 20 STA $2006
07/FFD1: 8D 06 20 STA $2006
07/FFD4: 49 00 EOR #$00
07/FFD6: CA DEX
07/FFD7: D0 F5 BNE $FFCE
$2007ないからPPUメモリにデータ書き込んでるわけでもなさそうだし・・・。
0205名前は開発中のものです。
2006/03/02(木) 00:22:40ID:oaDOzeC8よくわからないけど、VRAMアドレス指定以外の$2006の情報が載ってる
>>69とhttp://nesdev.parodius.com/NinTech.txt
が役に立つかも。
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ねよ
■ このスレッドは過去ログ倉庫に格納されています