トップページgamedev
982コメント299KB

ファミコンのプログラム2

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/12/21(水) 02:19:16ID:3YuJDfXD
マリオみたいなのを作ってエミュで遊びたいんですが
開発ツールはどこで手に入りますか?
0127名前は開発中のものです。2006/01/21(土) 02:56:54ID:Z4Gn9btQ
>>126
逆上すんなって
0128名前は開発中のものです。2006/01/21(土) 03:13:33ID:Cm0+APB2
>>126
わかりました。あなたには何を言っても無駄なのですね。
いつまでもそうやって馬鹿を相手にイライラしながら狭量な人間を演じ続けるといい。
きっと早死にするから。
0129名前は開発中のものです。2006/01/21(土) 04:37:22ID:mg8wRruj


0130名前は開発中のものです。2006/01/21(土) 04:50:20ID:uSskMP5H
スレ趣旨がはっきりしないのでどっちを排除すべきかわからんな
誰か教えてくれ
0131名前は開発中のものです。2006/01/21(土) 08:34:29ID:2AwO6Clf
排除なんてとんでもない!
馬鹿と馬鹿しかいないので便乗してスレを盛り上げるのが正解です。
0132名前は開発中のものです。2006/01/21(土) 18:25:49ID:5pBEz2pw
いつの間に次スレ立ってんだよ。 (;´Д`)
0133名前は開発中のものです。2006/01/21(土) 19:39:41ID:Cu6IRIoq
CMの間に。
0134名前は開発中のものです。2006/01/22(日) 12:06:33ID:5hEcSTm8
2バイト以上の値を10進数に変換したいんだけど
どんな方法がいいですか?
0135名前は開発中のものです。2006/01/22(日) 13:15:42ID:CULwhalL
おいどんも興味があったので検索してみたでごあす
ttp://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html
0136名前は開発中のものです。2006/01/22(日) 14:22:52ID:5hEcSTm8
俺もそのページ発見したけどとりあえず
自力で無理矢理実装しますた。
ゲーム作るなら誰もが必ず通る道なんで、
最適化された定番パターンがあるような気が。
0137名前は開発中のものです。2006/01/22(日) 16:23:29ID:wzt1x3xT
どんな実装したの?
0138名前は開発中のものです。2006/01/23(月) 05:42:32ID:ufimOIGs
ttp://www.6502.org/source/integers/hex2dec.htm
ttp://www.6502.org/source/integers/hex2dec-more.htm
こんなんあった
ファミコンで使えるかはわからないけど
0139名前は開発中のものです。2006/01/23(月) 23:56:13ID:bqSLIIVd
泥臭い事やってんのね
0140名前は開発中のものです。2006/01/27(金) 07:49:01ID:Ehem9G7o
全部BCDで計算する
0141名前は開発中のものです。2006/01/27(金) 08:59:32ID:byW4/GoA
わり算、かけ算はどうしてるの? 自作ルーチン考えたの?
0142名前は開発中のものです。2006/01/27(金) 19:41:07ID:G1e7lE/8
http://tumi.kaz7.com/t2/ore_reg.cgi
0143名前は開発中のものです。2006/01/28(土) 18:51:05ID:+47znF+b
どうせバカしか居ねぇんだろうな、なんて思いながら覗いてみたら
ほんとにバカしか居なくてワラタ








!

0144名前は開発中のものです。2006/01/29(日) 12:31:14ID:muwNMQ2+
エミュだとうまくいくのに実機だとスプライトがうまくイカネ
0145名前は開発中のものです。2006/01/29(日) 13:10:20ID:kUbEbTUh
>>144
うpキボン
0146名前は開発中のものです。2006/01/29(日) 13:27:41ID:muwNMQ2+
>>145
ソースも?
0147名前は開発中のものです。2006/01/29(日) 15:09:09ID:DeLmn2Oq
何でもいいからうpきぼん。
ソースはどっちでも
0148名前は開発中のものです。2006/01/29(日) 15:37:28ID:kUbEbTUh
>>146
ソースもあれば(・∀・)イイ!
0149名前は開発中のものです。2006/01/29(日) 16:36:05ID:muwNMQ2+
ttp://up.isp.2ch.net/up/c55c2f9d6b36.zip
0150名前は開発中のものです。2006/01/30(月) 02:20:27ID:YSY2lPcd
エミュでもうまくいってない気が
0151名前は開発中のものです。2006/01/30(月) 02:44:26ID:fwsGAJx5
>>149
乙!
てかこれはゲームなのか?
ボタン押すとボールが表示されて消えるけど。
0152名前は開発中のものです。2006/01/30(月) 03:42:53ID:kMysk7ur
ゲーム乞食か・・・
0153名前は開発中のものです。2006/01/30(月) 10:42:28ID:5exg8d2W
まだ途中なんだけどね。
実機だとスプライトがうまく表示できなくて詰まってる。
0154名前は開発中のものです。2006/01/30(月) 11:23:59ID:PFEzLhnJ
エミュでもスプライトが表示されていないと思います。
0155名前は開発中のものです。2006/01/30(月) 12:27:10ID:5exg8d2W
画面上部の赤のランプが緑に変わる。
Bボタンで丸い物体が出現して動いて消える。
現状それだけ。

G-NES
NNNesterJ
VirtualNES
で表示されてるのは確認した。
実機でやるとスプライトの表示が変(一部しか出なかったり。)
0156名前は開発中のものです。2006/01/30(月) 12:34:07ID:PtP9EnNB
まずどういう動作をすれば正常なのか知りたいな
0157名前は開発中のものです。2006/01/30(月) 12:47:11ID:5exg8d2W
>>156
>>155の動作が正常です。
0158名前は開発中のものです。2006/01/30(月) 12:59:40ID:7Yf44jRr
もっとシンプルなので試してみてはどうか。
真っ黒な空間に豆腐(スプライト)を表示させるだけとか。
0159名前は開発中のものです。2006/01/30(月) 15:43:18ID:5exg8d2W
あ、できた。
0160名前は開発中のものです。2006/01/30(月) 18:09:34ID:PtP9EnNB
>>157
ごめん。書き込んだ時には>>155は表示されてなかったもんで。
解決おめ
0161名前は開発中のものです。2006/01/30(月) 22:29:40ID:02kWKfCx
>>149
そこすぐ落ちるから、長持ちする他の場所にうpしてよ。
解決しならいらねーけど。
0162名前は開発中のものです。2006/02/02(木) 15:01:37ID:gFEP4lus
解決するわけないよ
若いコは知らないだろうけど、ファミコンて8個スプライトが
並ぶとそれ以上は表示できないんだよ

エミュレータではたぶん表示できるんだろうね
0163名前は開発中のものです。2006/02/02(木) 18:40:46ID:yTGlVmzV
いやエミュでもできないのある。
0164名前は開発中のものです。2006/02/02(木) 19:25:37ID:KwQELIZf
だからなんだよ
0165名前は開発中のものです。2006/02/02(木) 19:39:51ID:v6l9OAas
解決しましたよ。
0166名前は開発中のものです。2006/02/03(金) 01:44:29ID:dK7GmIeA
本当にそんなことが原因だったの?
ファミコンはオサレ世代か
0167名前は開発中のものです。2006/02/03(金) 06:14:34ID:aQhPxSEx
エミュってスプライト制限を無くす機能があるけど、
これって無限にスプライトを表示させることができるのか?
0168名前は開発中のものです。2006/02/03(金) 07:02:01ID:4o0aSTs+
スプライト9個も表示してた?
弾?だけスプライトじゃなかったの?
0169名前は開発中のものです。2006/02/03(金) 12:08:44ID:Z449ufZv
>>167
横並び制限を解除
0170名前は開発中のものです。2006/02/03(金) 13:40:45ID:Ta00PAZy
スプライト制限ではなくて、DMA転送の前に入れてたパッドチェックをDMAの後にしたら直りました。
0171名前は開発中のものです。2006/02/05(日) 07:24:41ID:h3yRK8gG
実機と動作が異なるのではエミュレートとは言えないのではないか
0172名前は開発中のものです。2006/02/06(月) 23:39:02ID:Za2qy05r
スーパーマリオは効果音が鳴ってる間は
メインメロディーが消えるんだよな。
これは音の設定を変える処理を浮かせる為なんだろうか。
0173名前は開発中のものです。2006/02/07(火) 00:03:58ID:Qlw+Xfn4
メイン側が消える効果音と伴奏側が消える効果音と2種類あるみたい。
効果音2つを同時に鳴らしたいので
どちらかはメインメロディーと同じ側の矩形波を使用するように設定されているってことでは。
0174名前は開発中のものです。2006/02/09(木) 05:56:56ID:AcFFKrci
メモリ少ねえな
0175名前は開発中のものです。2006/02/11(土) 06:13:40ID:HxpXAjYU
脳の?
0176名前は開発中のものです。2006/02/12(日) 07:58:35ID:fP8S6+Pb
コンパイラをでっち上げてみたんだがRAMもROMもすぐ領域不足になる
1バイト変数にしないとダメだな
0177名前は開発中のものです。2006/02/12(日) 13:03:54ID:DjeWGN81
アセンブラいろいろ

nesasm
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:v7b6xuYf
↑どれが初心者に使いやすいんだ?
0179名前は開発中のものです。2006/02/12(日) 22:18:57ID:dn8i0Gqf
どれも初心者には辛い
NESの開発自体が辛い
0180名前は開発中のものです。2006/02/13(月) 02:55:33ID:Gtc5I6Df
サンプルをアセンブルしたり少し直したりした後
よーし、ゲーム作るぞ!ってとき、マッパーの選択で迷いますよね。
「ギコ猫でもわかるファミコンプログラム」もその話題のところで
途切れてる・・・

単純に最大容量のものを選べばいいんでしょうか・・・
それとも2000hとか細かく切り替えがきくものの方がいいんでしょうか。
0181名前は開発中のものです。2006/02/13(月) 11:11:31ID:u8hRMgLt
迷うならmapper0でいいんじゃない?
0182名前は開発中のものです。2006/02/13(月) 16:08:16ID:9h9NyXAH
そもそもマッパーなんて何の意味があるんだ?
0183名前は開発中のものです。2006/02/16(木) 19:04:08ID:yXONji5a
マッパー無いと読み込まないじゃん
0184名前は開発中のものです。2006/02/20(月) 10:04:10ID:oFGg/NSg
03/FE83: AD 16 40 LDA $4016
03/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:bkUHwmA4
例えば1番と8番の曲を繋げて再生するときはどうすればよいですか?
0187名前は開発中のものです。2006/02/21(火) 00:27:30ID:P6E0tMIc
ttp://www.geocities.jp/mizuyan777/

この人のパッド入力の手法は?
0188名前は開発中のものです。2006/02/24(金) 16:40:58ID:pKidOzJU
ギコネコ以外に分かりやすい解説サイトはないか?
ギコネコでも分かる〜は専門用語を知ってることを前提で話を進めるから理解できん。
0189名前は開発中のものです。2006/02/24(金) 20:02:52ID:kyUhytGE
CASLしかできない
0190名前は開発中のものです。2006/02/24(金) 21:56:34ID:mYOaHDEy
専門用語くらい調べろよカス
0191名前は開発中のものです。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
>>188
無いと思うけど。
何がわからんのかここで聴いてみたら?
0194名前は開発中のものです。2006/02/25(土) 08:51:35ID:IuSJXMuE
専門用語を理解しないとプログラムできないぞ?
調べる気がなかったら先へ進めない。
0195名前は開発中のものです。2006/02/25(土) 11:38:37ID:PDIwAB3O
>>191
だからお前が何を専門用語と感じるかなんて誰もわかんねーんだよボケ
お前らみたいなクソを一人一人相手にしてくれるサイトなんてねえよ
0196名前は開発中のものです。2006/02/25(土) 12:52:48ID:Zzfa1Vtp
何勝手に切れてんだゴミ?
0197名前は開発中のものです。2006/02/25(土) 23:10:40ID:6HJSpbUO
ゴミとクソの喧嘩ですか?
0198名前は開発中のものです。2006/02/25(土) 23:16:23ID:FKjx2hum
ゲームに出てくる訳の分からんアイテム名やら魔法とかと同じだ

丸覚えしとけ
0199名前は開発中のものです。2006/02/26(日) 09:44:55ID:uI1Ri5ld
短気な人にアセンブラは無理
0200名前は開発中のものです。2006/02/26(日) 09:56:52ID:v6/tfNu8
かなり根気いるね。
html少しかじった程度じゃ「ギコでも〜」が半分も理解できね。
0201名前は開発中のものです。2006/02/26(日) 10:40:07ID:3AjziKLo
マッパーの仕様と採用してるゲームの一覧とか載ってるサイトは無いですか?
0202名前は開発中のものです。2006/02/26(日) 12:31:01ID:ORUkYK+e
>>201
このスレの中くらい全部読もうぜ
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
>>204
よくわからないけど、VRAMアドレス指定以外の$2006の情報が載ってる
>>69http://nesdev.parodius.com/NinTech.txt
が役に立つかも。
0206名前は開発中のものです。2006/03/02(木) 00:40:27ID:kJXN0J5J
>>204
ブートしてすぐじゃねーかw
なので、何らかの初期化以外には考えにくい。
0207名前は開発中のものです。2006/03/02(木) 01:25:22ID:EQsbAVB3
>>205
thx!じっくり見てみます。

>>206
何の初期化してるのか気になるんだよw
0208名前は開発中のものです。2006/03/02(木) 01:27:44ID:kJXN0J5J
>>207
気になるかw
MMC3の割り込み関係じゃねーか?
あれPPUのアドレス線見てるから。
0209名前は開発中のものです。2006/03/02(木) 01:49:48ID:J+ERitzr
逆汗ってツールは何使ってるんだ?
0210名前は開発中のものです。2006/03/02(木) 21:18:07ID:EQsbAVB3
>>209
Tracerつかってます。

02112042006/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ビットかでキャリーフラグやオーバーフローフラグの結果が違いませんか?
ファミコンの場合どうなんでしょうか?
02132122006/03/03(金) 15:14:33ID:slh2KuyN
すいません。
ファミコンの場合どうなんでしょうか?と書きましたが他のハードの場合のこともまだ良く知りません。
0214名前は開発中のものです。2006/03/04(土) 00:56:30ID:WPjnZDiF
cmpもdecもVフラグを変更しない。
0215名前は開発中のものです。2006/03/04(土) 02:16:12ID:uDwDHKqH
(-128)-(-96)=-32
-128〜127からははみ出てない

>符号なしの8ビットか符号ありの8ビットか
なんてのはこっちが意識しなくちゃならん話だから
符号無しとして考えてるならオーバーフローフラグは見ないし
2バイト長以上で使うならキャリーフラグも見る

こんなんでどう?
0216名前は開発中のものです。2006/03/04(土) 11:55:58ID:n9pc+DF1
異符号同士の減算で、符号が変わったら、オーバーフロー
0217名前は開発中のものです。2006/03/04(土) 15:34:35ID:wmqT5dlp
アセンブラならNESDevkitが最強か?
0218名前は開発中のものです。2006/03/04(土) 17:35:15ID:kR8s56WR
nesdevkitまじ使えない
02192132006/03/04(土) 18:41:01ID:CCO2P6by
>>214さん
cmpはVフラグ関係ないのでしたか。勘違いしてました。
decは書き間違えてしまいました。sbcのつもりでした。

>>215>>216さん
なるほど。つまり演算の結果だけを考えてやれば良いのですね。途中の経路は考えないでよいと。

みなさんありがとうございました。
0220名前は開発中のものです。2006/03/05(日) 01:19:50ID:jnoC2dGb
>>218
じゃあ何がいいの?
0221名前は開発中のものです。2006/03/05(日) 11:32:04ID:NMhwKncH
NESDevKitってアセンブラじゃなくね?
0222名前は開発中のものです。2006/03/05(日) 17:25:11ID:suatdPLO
mmc1のドラクエ3でリセット直後やNMI後にロム領域の0xFFDCをインクリメントしてるんですが、これってどんな効果があるんですかね?もしやmmc1のレジスタをリセット出来たりします?
0223名前は開発中のものです。2006/03/05(日) 17:32:40ID:zxUnKLUO
質問のレベルが高けー
0224名前は開発中のものです。2006/03/06(月) 11:08:12ID:qqWLxZKz
>>222
やっべそれ初耳っす
02252222006/03/06(月) 13:04:12ID:LoDqGF2/
リセットとか考え理由なんですが、ドラクエ3では、バンク切替えの為0xFFFFに書き込む処理(0xFFC2)を呼び出す場所が、
NMIルーチンとメインルーチンでそれぞれにあるのですが、mmc1レジスタを(0x80を書き込んで)リセットしてるようすがないのです。
http://emu-docs.org/NES/Mappers/mappers.txt
などでは、mmc1は5回書き込むと反映されると書いてあり、ドラクエ3のロムの場合、通常は5回づつ連続して書き込んでいるため問題ないのですが、
NMI外で0xFFFFに書き込んでいる途中でNMIが発生する場合があり、その場合はリセットしなくてはおかしくなるはずですよね?
(gnesのデバッガでみると、この場合もNMI後にはリセット無しで新しく5回カウントしてるようです。)
エミュを自作中なんですが、いつもこの部分で挙動がおかしくなるので困っています。
んでincでもリセットさせたら動くようになったので、もしや>>222のようなことなのかと思ったしだいですが、やっぱり初耳ですか。
じゃ、どこでリセットしてるんだろ。種類の違うレジスタに書き込むとリセットするとかあるんでしょうか。
02262242006/03/06(月) 14:10:15ID:qqWLxZKz
>>225
俺も自作のエミュにそんな特殊機能つけてなかったっす。
そういやDQ3でテストしたこと無かったんでちょっとやってみます。
02272242006/03/06(月) 14:33:00ID:qqWLxZKz
案の定DQ3動かなかったです。
よく見てないけど$6A58に書き込もうとしてエラー回避でストップしてる。

そういえば輸出用のrockman2でも$42FF書き込みという特殊?なのがあったな。
あれはたしかPPUのミラーリング方式の変更だっったか。

0xFFDCもきっと何か意味があるね。
virtuaNESのソースでも探ってみます
■ このスレッドは過去ログ倉庫に格納されています