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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2005/12/21(水) 02:19:16ID:3YuJDfXD
マリオみたいなのを作ってエミュで遊びたいんですが
開発ツールはどこで手に入りますか?
0899名前は開発中のものです。2008/04/22(火) 23:38:51ID:WsGplEiB
一般的な話、水晶乗ってるんだから時間計測くらい何とでも出来るだろ
0900名前は開発中のものです。2008/04/22(火) 23:45:00ID:PoL7rtGA
Vblankは1/60sに一回起こる。つまりそういうことです。

というか実際のところどうなんだろうね。
どこまで1/60sに近い数字なんだろう。
0901名前は開発中のものです。2008/04/23(水) 00:38:27ID:byKYi0oI
NTSCなら60000/1001で59.94fps
だからゲーム機上の60フレームは厳密には1秒では無い
0902名前は開発中のものです。2008/04/23(水) 09:12:26ID:p6pBJev8
ファミコンはNTSCじゃないから、59.94ではない。
事実、テレビにファミコン映像が少し混ざった場合、上から下へ(あるいは逆かも)流れるので、
59.94と一致はしていない。
0903名前は開発中のものです。2008/04/23(水) 13:31:06ID:p6pBJev8
そう言えばエミュで、迷宮組曲の連射測定機能を測ると、理論値より少し多く出るな。 なんでだろう。
0904名前は開発中のものです。2008/04/24(木) 22:33:31ID:4GaXT/pf
>>901-902
ファミコンは60.1Hzっぽいな
1/(4/21.48e6*341*262) = 60.106

以下 NTSC 2C02 technical reference から抜粋
> Other than the 3-stage Johnson counter, the 21.48 MHz signal is not used
> directly by any other PPU hardware. Instead, the signal is divided by 4 to
>get 5.37 MHz, and is used as the smallest unit of timing in the PPU.

> - 341 PPU cc's make up the time of a typical scanline (or 341/3 CPU cc's).
> - One frame consists of 262 scanlines. This equals 341*262 PPU cc's per
> frame (divide by 3 for # of CPU cc's).

その差が効いてくる場面は、ゲームで遊ぶ分にはあまりなさそうで、
実機のキャプチャとかじゃなけりゃ気にすることはないだろうが。

>>898のようなのなら、ふつーは垂直同期を数えるかな。
MSXのBASICで秒間60増えるTIME変数は便利だったのを思い出した。
0905名前は開発中のものです。2008/04/24(木) 23:42:03ID:soSdpCPx
(21477270/4) / (341*262)=60.098
だろ?
0906名前は開発中のものです。2008/04/26(土) 09:49:47ID:nl7Vbcs/
このスレの住人ってすげーな。
0907名前は開発中のものです。2008/04/26(土) 14:59:29ID:rnaVgqqK
>>904
まあ正確な時計を作るわけでもないから
普通は60フレーム数えて1秒とすれば問題ないよなぁ

そもそもマリオなんかは秒計算じゃないし
0908名前は開発中のものです。2008/05/15(木) 01:03:06ID:dE5NgbNj
こちらの板を見つけて、またFCプログラミングしたくなってきたので、
久々に挑戦してみようかなぁー
バッ活はPart4からの購読で、実績は、Part6あたり(表紙がヘリ?)に
チートコードが載ったり、FCキャラエディタ(確かPC88用)が載ったりしました。
(該当書籍持っている方、名前は晒さないでねw)

一度、クソゲーが遊べる程度まで作れたので、今度はそこそこ遊べる
のを作ってみたいと思います。

ところで、アマチュアで人に見せられるの作った人いる?
0909名前は開発中のものです。2008/05/15(木) 12:27:32ID:tWB88E4G
>>908
神光臨
0910名前は開発中のものです。2008/05/16(金) 18:35:38ID:w5qX9vf8
>908
ノシ
ゲームじゃないけどね
09119082008/05/18(日) 01:15:35ID:0NSQHV1d
ゲームに限らず、ちょっとしたプログラムでもFCだと制約が壁になりますからねぇ
とりあえず、見てくれる人がいるようなので一安心。

一応、開発は進んでます。といっても、なかなか時間が取れず、
まだ動作検証段階ですが。。。音以外は何とかなりそうです。
スプライトとBGの表示の方法とパレットの関係を把握し、
必要最小限のキャラ(暫定)を作り終えた所。
作っているのは、よくあるパスルゲーで、個人的には割とハマって
ますので、1回クリアするくらいは遊んでもらえるかと思われますw

たまに顔出しますのでヨロロ
09129102008/05/18(日) 19:28:47ID:jycNLlW9
いいねえ
俺は逆に音以外がイマイチ
BGMやらせてもらえないかなあ
09139082008/05/20(火) 02:13:24ID:PtJMgV5O
>>910
おぉ!音系やってもらえるととても助かりますっ!

基本的にはVBlank時のNMIで流しますので、1/60毎の実行に
なるかと思います。
音源ドライバとか作ったことないのでイマイチよく分かりませんが、
どこかのメモリーに曲番号書き込むとその音楽が演奏されて、
さらにどこかのメモリーに演奏状態(演奏中or停止中)などの
情報があるといいなー?なんて思ったりしてます。^^;
当方、音に関しては素人なので、ご自由にお願いします!

それと、操作時の効果音を入れたいので、どれかのチャンネル
は空けておいて下さい。w

テスト可能になりましたら、ROMイメージ&ソースを公開したい
と思います(6月上旬から中旬くらいまでは掛かるかなぁ)。

なお、開発は NESASM 、動作確認は VirtuaNES で行って
います。
09149102008/05/21(水) 16:38:48ID:/GIDkXml
>913
了解
じゃあテストしてみてからゲームに合わせて曲を作るよ。
BGMの再生はアキュムレータに曲番号をセットして
曲を読み込むルーチンを呼び出すだけだから簡単にできると思う。
演奏状態は今のところ確認できないけども、作ればすぐかな。
効果音は勝手にBGMをマスクして鳴らすように作ってあるんで、
チャンネルは空けておかなくていいかな?

開発はこっちもNESASMだから問題なさそうだね。
ではうpを待つ!
091512008/05/21(水) 22:03:33ID:mKCmg2RZ
スレ立てからちょうど2年半で
こんな展開になるなんて・・・オラわくわくしてきたぞ!
0916名前は開発中のものです。2008/05/22(木) 17:01:27ID:3uk5SAz7
板名にふさわしい展開だな
0917名前は開発中のものです。2008/05/22(木) 19:24:08ID:d6oC8e+B
外野ですが密かに期待してます
0918名前は開発中のものです。2008/05/25(日) 01:28:21ID:z7K6OTBb
上の2人以外で作ってる人いない?
0919名前は開発中のものです。2008/05/28(水) 22:26:31ID:JEwxWr3S
ドアドアって何でエミュでやると音がずれるんですか?
09209082008/05/29(木) 23:52:42ID:7I4XItfK
まだまだゲームになっていませんが、もう2週間経ってしまったので
現在のROMイメージとソースを公開します。

↓こちら
ttp://stargate.game-server.cc/fc/

進展がありましたら当スレッドでご連絡します。


P.S.
窓の杜で「RetroMusicEditor」なるフリーソフトが公開された模様。
ファミコンの実音イメージで作曲できそうな予感、だけどまだ試してません。
ttp://www.forest.impress.co.jp/article/2008/05/28/retromusiceditor.html

09219082008/05/30(金) 00:03:59ID:CuZ8TqGE
>914
スバラシイ!それでOKです!
割と楽に音出しできそうで助かります〜
チャンネルは空けなくてOKです。

うpったソースはかなり見辛くて恐縮です^^;
0922名前は開発中のものです。2008/06/03(火) 23:26:04ID:+Jr0HwSk
どなたか>>919が分かる方いらっしゃいませんでしょうか。
エミュという単語が引っかかりますでしょうか。
エミュでは再現できないような中村氏の高度なプログラムが
為されているのではないかと気になって仕方が無いのです。
09239102008/06/04(水) 23:53:54ID:kBD41vU9
組み込んでみた
ttp://www-2ch.net:8080/up/download/1212590951042976.5gGDdp?dl

なんだかゆっくりナンプレなんてしてられない曲になってしまった
0924名前は開発中のものです。2008/06/05(木) 18:46:55ID:+uY5UfuO
私はいままでマッパー0ばかりでプログラム組んでたのですが、最近になって
マッパーというものを勉強し始めました。いままでのマッパー0ならばNMI内でVRAM関係の処理を終えた後
ゲームの核の部分に飛んでいたんですが、それは他のマッパーでも変わらないのでしょうか。
MMC3やらMMC5やらで開発されている技術者様のソースを読んでみると、NMIルーチンの記述が短くて、
どこに中心となる部分を書いてるんかなあと思いました。
0925名前は開発中のものです。2008/06/06(金) 19:29:25ID:/HuArDl6
>>923
遊び方が分からない。
一部のエミュで表示が少し変になった。
0926名前は開発中のものです。2008/06/06(金) 20:11:28ID:2GstnDb8
アホはとことんアホなスレ
0927名前は開発中のものです。2008/06/07(土) 04:29:35ID:B2t5DkWG
>>925
まだまだゲームになっていませんが、って書いてあるじゃん。
あと、どのエミュでどんなふうに変になったか書くと
908の参考になると思うぞ。
0928名前は開発中のものです。2008/06/08(日) 04:07:51ID:2DGuGzWD
ファミコンのアセンブラとC言語ってどっちが難しいの
0929名前は開発中のものです。2008/06/08(日) 04:36:32ID:Wva6GSx3
変わらんよ
理解だけならアセンブラかも
でも構造化しにくくて結局Cの方がおkってなると思うですよ

手間の多さは圧倒的にアセンブラ
汎用性の無さも圧倒的にアセンブラ
まあ考えれば当然の事ですがちょいと語ってみましたよではでは
0930名前は開発中のものです。2008/06/08(日) 13:38:58ID:fP9Tn+ba
アセンブラはコンピュータ技術について高度な知識を持っていないと大変
C言語はパソコン初心者でも大丈夫
だからCのほうが簡単かもね
0931名前は開発中のものです。2008/06/08(日) 15:32:35ID:Wva6GSx3
そだな、情報量の差も大きいですな
初心者向けのアセンブラ本も皆無じゃないけど、需要の差が歴然だし
0932名前は開発中のものです。2008/06/08(日) 21:58:06ID:rqYut8h5
アセンブラなんて このスレで初めて触ったわ
バグ修正がかなりキツいけど(情報がほとんど無いし・・・)
ファミコンソフト作ってると思うと楽しいもんだな
0933名前は開発中のものです。2008/06/08(日) 22:03:58ID:kd1HGmuL
直接ハードを叩いている気分が味わえるところはいいかも>アセンブラ
昔の人はこれで開発して、徹底的にメモリを切りつめたんだなぁと
思うと感慨深い。
それと同時に、ファミコンって変なハードの作りをしているなぁと思う。
0934名前は開発中のものです。2008/06/08(日) 22:09:09ID:GjusA3wR
当時のコンピュータはとても高価ですから
0935名前は開発中のものです。2008/06/08(日) 23:48:17ID:UmctdlJj
DSも変な作りらしいけどな。
任天ハードって全部変なのかも
0936名前は開発中のものです。2008/06/08(日) 23:49:26ID:Wva6GSx3
Sonyには敵わないんじゃねえか?w
0937名前は開発中のものです。2008/06/09(月) 01:42:38ID:CNbBXcM+
動くプログラムを作るだけならCもアセンブラも言語を覚える手間は大して変わらんよ

どっちの言語を使おうが結局ハードウェアの知識は必要だしね
0938名前は開発中のものです。2008/06/09(月) 06:25:55ID:6220QooE
命令が少ないアセンブラの方が簡単ではある
0939名前は開発中のものです。2008/06/09(月) 23:24:58ID:+NtSH4bU
>>933
>ファミコンって変なハードの作りをしているなぁと思う。

カートリッジにプログラム用のROMとグラフィック用のROMが
別々のバスに繋がって載っているなんて、
他の家庭用ゲーム機では見られない作りだよなぁ。

そのおかげで、あの当時であの値段で他を圧倒する性能だったし、
その後数年生き延びられる発展性があったのだろうな。
0940名前は開発中のものです。2008/06/10(火) 07:10:00ID:ww3zSYth
6502覚えればSFCへノウハウ引き継げる?
0941名前は開発中のものです。2008/06/10(火) 08:13:46ID:t4e1kHXJ
ちょっとは引き継げる…らしい
しかしSFCは、当時のFC開発者が「難しい」と
頭を抱えた代物らしい。
0942名前は開発中のものです。2008/06/11(水) 00:22:12ID:m0niBhvc
仕事で金貰いながら朝から晩までプログラム作ってるやつに
0943名前は開発中のものです。2008/06/11(水) 00:49:02ID:rtrEEfM+
>>908
ヘリが表紙のバッ活って、俺も持ってた。
背表紙がボロボロに折れるまで読んでたなぁ。
たしか背景が緑基調の表紙だったよね。

陰ながら応援してますヨ
0944名前は開発中のものです。2008/06/11(水) 07:42:42ID:cSfY3iN8
そういや6502ってPCEも採用してたんだよな
覚えればPCEゲーにも使えるか
0945名前は開発中のものです。2008/06/11(水) 09:52:38ID:vpmZjN71
ASMよりもハード固有の機能の方がムズイからなぁ
0946名前は開発中のものです。2008/06/11(水) 12:16:58ID:CRWCcl8F
かと言って、今からPCEゲーを作るかといったら疑問かな
あえてPCEを触る食指が動かないかも
0947名前は開発中のものです。2008/06/12(木) 02:22:15ID:8wh7CbFH
なかなか興味深い

http://www.nicovideo.jp/watch/sm3629459
0948名前は開発中のものです。2008/06/12(木) 09:52:44ID:WWFxODiI
PCEとファミコンってCPU同じだし速度も同じなのか
0949名前は開発中のものです。2008/06/12(木) 22:52:17ID:TWevaddh
ゲームじゃないプログラムを組むならMSXとかの方が良さそうと思った
こんにちは世界を表示するだけであんなに長くなるのはゲームに特化し過ぎ
ちなみにMSXは良く知らない
0950名前は開発中のものです。2008/06/13(金) 04:50:55ID:t7ajfTcP
MSXはBASICあるからなぁ

10 print("こんにちはせかい")
run 10

こんな感じじゃなかったか。
printの前にSCREEN指定が必要だったかもだが
0951名前は開発中のものです。2008/06/13(金) 09:01:56ID:uZ4z87/f
ファミコンと違って、画面一杯を使って絵を描けるのは利点だな>MSX
ただし、MSX1だと横8ドットに2色というキツい制限があるが
漏れは6502よりZ80の方が扱いやすい。レジスタ2つくっつけて16ビットの足し引き計算が簡単にできるし

ファミコンだと、BG256個以上のものを表示させようと思うと
特殊なことをしないとできないし、かなりの力業になる
そのため、どうしてもチマチマした画面になる
それが利点でもあり、欠点でもある仕様だな。一概にMSXをバカにはできない
0952名前は開発中のものです。2008/06/13(金) 12:46:55ID:k9S409RJ
>>951
BG(外字)の表示が速いから
巨大ボスとか巨大キャラ出しまくりだったね
グラディウス系とかR-TYPEとか
0953名前は開発中のものです。2008/06/13(金) 12:56:42ID:34AyakxD
msxってまともにスクロールするゲームってあんの?
0954名前は開発中のものです。2008/06/13(金) 13:13:13ID:k9S409RJ
>>953
http://ameblo.jp/msx-lab/entry-10007181938.html
0955名前は開発中のものです。2008/06/13(金) 14:24:20ID:mBN0aDl2
誰か>>919を……。
0956名前は開発中のものです。2008/06/13(金) 21:49:32ID:FJIUwXv1
ずれるエミュを教えてくれ。
0957名前は開発中のものです。2008/06/13(金) 22:13:55ID:mBN0aDl2
ありがとうございます。言われて改めてチェックしたのですが、
nnnesterJではズレズレで、virtuanesではズレは発生しませんでした。
という事はエミュの問題か……。
それにしてもドアドアだけ(全ROM調べたわけではありませんが)がズレる理由が分かりません。
なんででしょうね?
0958名前は開発中のものです。2008/06/13(金) 23:57:15ID:BUbe/Prx
プログラム的解析ページとかを見回って分かったけど
エミュと言っても一部しかエミュして無いので特定条件下でそうなってもおかしくない
つまりエミュがエミュって無いからです
0959名前は開発中のものです。2008/06/14(土) 02:56:59ID:QQIXzaKE
SFCは6502互換だったし中国のパチモンみたいな100in1みたいなファミコンゲー公式で出せば良かったのに。
10本くらい余裕で入れれそうだし。
0960名前は開発中のものです。2008/06/14(土) 14:01:22ID:b24QJXjx
マシン全体としての互換性は如何に
新作やリメイクの方が儲かったんじゃないかな。
ブロードバンドもない時代だし
0961名前は開発中のものです。2008/06/14(土) 14:47:04ID:FDOCf0H/
>マシン全体としての互換性は如何に

ないに等しい。
当初は互換性をつける計画だったらしいけど、諦めた。
65816自体は6502からある程度応用が利くのだろうが、
SFCは基本仕様がツキハギだらけでグチャグチャだから。
0962名前は開発中のものです。2008/06/17(火) 03:00:27ID:ZUg0WTjL
エミュレートすることは出来るんじゃないのか
0963名前は開発中のものです。2008/06/17(火) 08:22:04ID:J/wNNT7k
スーパーゲームボーイがあることを考えると、
エミュレートは可能だったかも。

それなら、スーパーゲームボーイみたいな周辺機器が
出てもおかしくなかったのだろうけど。
0964名前は開発中のものです。2008/06/17(火) 09:20:09ID:sfJMKI+6
スーパーゲームボーイはあの中にゲームボーイのハードが入っているんだよ。
0965名前は開発中のものです。2008/06/17(火) 11:02:15ID:SXQpao4B
どっかに、
SFCで動くFCエミュ作ってた人いたような。
0966名前は開発中のものです。2008/06/18(水) 20:22:58ID:W9Da754c
アドバンスの中にはゲームボーイが入ってるんだっけか
0967名前は開発中のものです。2008/06/18(水) 23:15:48ID:A+1OcWth
そしてDSの中にはアドバンスが
0968名前は開発中のものです。2008/06/18(水) 23:32:30ID:sWqr2oTF
そしてみんなの心の中にはファミコンが
0969名前は開発中のものです。2008/06/19(木) 12:33:33ID:g4yagXHf
上手い事を言ったからといって俺は反応しないぞ!
0970名前は開発中のものです。2008/06/19(木) 20:36:16ID:hoe5Xi9A
lda <$00
clc
adc #$01
sta <$00
lda <$01
adc #$00
sta <$01
$00を1ずつインクリメントしていってFFをこえたら$01に1加算する
要は繰り上がりを考慮した計算がしたいんですが上のコードでちゃんと$01に加算されません
自分ではどこが悪いのかわからなかったんですが不適切な箇所をしてくださる
方いませんか?
0971名前は開発中のものです。2008/06/19(木) 20:54:09ID:Z3TnVB7Z
つ、釣られないぞ!
09729702008/06/19(木) 20:57:59ID:hoe5Xi9A
ミスタイプ発見
>不適切な箇所をしてくださる
不適切な箇所を指摘してくださる
です。すみませんorz
0973名前は開発中のものです。2008/06/19(木) 22:08:51ID:rJJebUia
>>970
そこは間違ってないから、多分他の部分に問題があるよ
あと、1ずつ加算するだけならこうしたほうがいいよ

 inc <$00
 bne a
 inc <$01
a:
09749702008/06/19(木) 22:40:14ID:hoe5Xi9A
ありがとうございます。
たしかに教えていただいたやり方のほうがシンプルですしバイト数も圧倒的に少なくてすみますね
NESASMのマニュアルを読んでみると、incではCフラグ変わらないようでしたので
わざわざadcで書いたんですが(^^;
目から鱗です
0975名前は開発中のものです。2008/06/20(金) 05:42:43ID:vNQ2drFm
もうじき3スレ目なのに6502の解説wikiすらないのか
0976名前は開発中のものです。2008/06/20(金) 11:17:35ID:IUx1YUUB
みんな銀行カードの暗証番号はやっぱ6502だろ?
0977名前は開発中のものです。2008/06/20(金) 14:18:29ID:VMgt2dRS
>>958
ありがとうございます!
原因はエミュですか。では他にも遅れが出るソフトがあるかもしれませんね。
中村氏のウルトラプログラミングではなくてちょっと残念w
0978名前は開発中のものです。2008/06/20(金) 15:11:00ID:76/vPTCu
>>976
さすがにそのままじゃあれだから逆から読んで2056だ
0979名前は開発中のものです。2008/06/21(土) 00:26:20ID:pjOwOOd7
>>975
別に解説wikiとかいらなくね?
0980名前は開発中のものです。2008/06/21(土) 01:35:06ID:ihkR0Wjp
猫でも分かるは分かりにくいから分かりやすいwiki作れ
0981名前は開発中のものです。2008/06/21(土) 02:48:39ID:KL4Sx5WH
お前が作れボケ
必要無い人間のほうが多いんだよ
0982名前は開発中のものです。2008/06/22(日) 00:49:53ID:QuO3KhND
↓次スレ
レス数が950を超えています。1000を超えると書き込みができなくなります。