1 :
名前は開発中のものです。 :
2005/12/21(水) 02:19:16 ID:3YuJDfXD マリオみたいなのを作ってエミュで遊びたいんですが 開発ツールはどこで手に入りますか?
2 :
名前は開発中のものです。 :2005/12/21(水) 03:53:28 ID:mzczL6+y
2だったらいいな
3だったらいいな
| | | |∧_∧ |_|´・ω・`) |梅| o終了o | ̄|―u' """""""""" | | | |∧_∧ |_|´・ω・`) |桜| o ヽコト | ̄|―u' 終了 """""""""" | | | | |_| |松|ミサッ | ̄| 終了 """"""""""
おお立ててくれましたか! むしゃむしゃ( ´)Д(`)終了∩ むしゃむしゃ( ´)Д(`)了∩ むしゃむしゃ( ´)Д(`)∩ それと前スレ982への答えですが、KZ-NESSAでつかいたいのであれば拡張子を.bg→.namに変えれば読み込めます。
前スレどこよ。
8 :
名前は開発中のものです。 :2005/12/22(木) 12:27:59 ID:B8Z9ng2p
たたってもこれでは いずれ落ちるぞ。エイジしておくか。
10 :
名前は開発中のものです。 :2005/12/23(金) 14:52:46 ID:pgjOiRzu
ファミコンで個人が作ったので凄いやつとかないの?
う〜ん、なんでファミコンをエミュでゲームつくる必然性がわかりません。
マリオみたいなのならHSPや、アクションゲームツールソフトでつくた
方が楽に速くできると思うんですが・・・?
>>1 さん、には何かこだわりのようなものがあるのでしょうか?
マリオを動かすのならエミュが必要だけどマリオみたいなゲーム作って 動かすのならエミュは不要だよな
開発ツールといっても、アセンブラしかなく、少ない(高価)なメモリ
をいかに効率良く使うかを第一義に考えられた、ルービックキューブ
みたいなハードウェア・アーキテクチャ・・・しかも、失われた技術
(ロスト・テクノロジー)
>>1 は、極上のM・・・?
ファミコンで動かせることに意味がある。 また、過去のソフト開発の様子を学ぶという点では楽しい。 決して失われた技術なんかじゃないよ。 本質の部分は変わらない。むしろ既に精錬されていた。 まあ、ひとつのゲームを完成させる意味があるのかは謎ですが。
私の場合は、某シリーズの新作を自分でつくれたらいいな、という気持ちでファミコンプログラム。 最終的には実機で動かしてぇ。 完成できるかできないかはおいといて、あれこれ試行錯誤しているときが一番楽しい。
16 :
名前は開発中のものです。 :2005/12/24(土) 19:27:14 ID:+JrFX9qy
ファミコンの逆汗ツールや解析のサイト貼ってくれ
14さんに付け足し。 エミュが動くところならどこでも動作する。 ファミコン用に作るだけでGBAでもLINUXでも、 いずれは携帯でも動くようになる・・・ それにしても作るの大変。何度挫折しては再開を繰り返してるか・・・
18 :
名前は開発中のものです。 :2005/12/28(水) 19:31:45 ID:sZ2oC9HO
熱血格闘伝説のグラフィック。ゲーム中にバンク切り替えまくってますね。
MMC3でVRAM使う場合はどうやって書き込むんだろう。
>>19 $A001を設定したら普通にRWすればいいんだと思うけど
21 :
19 :2005/12/30(金) 20:29:04 ID:v9eiXl8a
できた。
実機プレイのためのROM置き換え法で、FlashROMでもできるんだろうか。
nsfでDTMして遊んでたらゲームをつくりたくなって このスレ見つけますた。 見たところ、nesファイルを作成するような環境は無いみたいですね。
>>23 あるよ。ってかnsfはnesファイルの一種なのだが・・・
>23がどうしてそう思ったのかが非常に気になるな。 トラッカーでnsfしてたのだろうか。
>>25 mmlで簡単にファミコン音楽作れたんで、
ゲームも簡単に作れないかとふと思ったんだけど
トラッカーってわからんけど
>>27 d。
みんなアセンブラでやってる?
Cでも出来るらしいけど、当時はどっちが主流だったんだろう?
有志が作った作品とかってどっかに公開されてない?
質問ばっかでスマソ
>Cでも出来るらしいけど ツールあんの?
ぐぐればいくらでも出てくる
32 :
名前は開発中のものです。 :2006/01/05(木) 03:33:18 ID:MYN5hEC+
Cコンパイラが?あるんならURLキボン
33 :
名前は開発中のものです。 :2006/01/05(木) 03:35:07 ID:MYN5hEC+
ttp://www.cc65.org/ "c compiler" nesでぐぐったら1ページ目に出るんだが使えないツールなのか?
Cだろうがアセンブラだろうがやらない奴は何もしないんだろうが
ダメ元で質問です。 ギコファミの"giko005.asm"から抜粋なんだけど、 .dw 0 ; VBlank割り込み .dw Start ; リセット割り込み。起動時とリセットでStartに飛ぶ .dw 0 ; ハードウェア割り込みとソフトウェア割り込みによって発生 って部分なんだけど、 Q1:「.dw」って何? Q2:[.dw 0]ってどういう意味?
; VRAMアドレスレジスタの$2006に、パレットのロード先のアドレス$3F00を指定する。 lda #$3F sta $2006 lda #$00 sta $2006 1回目と2回目で同じアドレス(2006)を指定しているんで、 上書きされるだけな気がするんだけど?
A1, 2バイト確保。.dbで1バイト確保 A2. 2バイト確保して0で初期化。 A3. レジスタが8bitなので2回に分けて書き込むため。そういう仕様。 多分こんな感じ。
>>37 アリガトン。
.bank 1 ; バンク1
.org $FFFA ; $FFFAから開始
.dw 0 ; VBlank割り込み
.dw Start ; リセット割り込み。起動時とリセットでStartに飛ぶ
.dw 0 ; ハードウェア割り込みとソフトウェア割り込みによって発生
よくわからないけど、以下のように解釈して問題無いかな?
;バンク1の開始位置を指定し、そこへカーソルを移す
.bank 1
.org $FFFA
.dw 0 ; $FFFAをクリアして、次のアドレスへカーソルを進める
.dw Start ; $FFFBにStartラベルへのアドレスを書き込んで、進める
.dw 0 ; $FFFCをクリアして、進める
色々間違ってる ギコネコの中の人に直接きけ それが早いしあのサイトにも役立つだろう
>>39 トン。それはわかった。
なんかまだよくわからなくて、全然思い通りにいかない・・・
今さらながらCの有り難味を痛感しますた
Cで言うと変数宣言してるだけだお
フラッシュROMに置き換え成功キタ━━━━━━(゚∀゚)━━━━━━ !!!!! 今日は遅いので詳細は明日。っつうか今日の昼に。 (つ∀-)オヤスミー
+ + ∧_∧ + (0゚・∀・) ワクワクテカテカ (0゚∪ ∪ + と__)__)
45 :
43 :2006/01/06(金) 12:47:06 ID:HZ79Spkz
とりあえず、ROMライタはUSB接続タイプのLeaper-3C。 フラッシュEPROMはAMDのAM2C9040B-90PC(4Mbit DIP32) 最初に改造した基板はロックマン4のHVC-TGROM-01。これはCHRがRAMになってるもの。 ROMはずしてICソケットつけるんだけどそのままだとピン配置がちがうので合うように配線。 確認のため、ロックマン4(もう一個持ってた)をFamisoonで吸い出して、PRGだけ保存。(NESファイルから先頭16バイト切り取っても可) それをEPROMに書き込んでソケットに装着→( ゚Д゚)ウマー 書いてて分けわかんないから、PRG,CHR両方ROMのやつとセーブ機能つきのやつもためして文書にまとめまする。 んじゃノシ
レベル高すぎて何言ってるかサッパリわかんねーけど すけーよ!!!カコイイ!!!!
47 :
43 :2006/01/06(金) 17:15:11 ID:HZ79Spkz
TL-ROMで作成中だけど危うくEPROMの足ブリーン!って取れるとこだった。 あしたIC抜きかってくるか・・・
ぶっちゃけアッソーて感じ ぶっちゃけ
音の周波数と、音階の関係を知りたいんだけど どうしたらいいかな? 例えば、あるオクターブのドは周波数いくつなのか?とか
50 :
名前は開発中のものです。 :2006/01/06(金) 22:30:20 ID:LQhurnsm
全然凄くないんですけど?
板違いの人間ばっかじゃねーか
53 :
名前は開発中のものです。 :2006/01/07(土) 00:16:18 ID:FkbuZimZ
同じ音でオクターブがひとつ上がると、周波数が倍になるんだったと思う。 周波数がちょうど倍になるから、波形が互いに干渉しないから、 オクターブ違っても同じ音だと濁らない…って真面目に答えてしまった…OTL
440[Hz]の「ラ」から半音n個ぶん離れた音の周波数fは f = 440×2^(n/12) [Hz] (n=0, ±1, ±2, ...)
アセンブラってきっついな。 Cのコンパイラって無いのかな?
関係ない話だが、半音上げるには周波数を何%にすればいいんですk
荒らしのテクニックかよ 帰れ帰れ
このスレには俺と激烈バカの59しかいないようだな
ジャーンジャーン
BGMはみんなそれぞれのフォーマットのツール作成して バイナリにして読み込んで独自のプログラムで 再生してるの?
答えて読まないくせになぜ質問するのか
もしそうなら世間には「それぞれのフォーマットのツール」が溢れているはずだ
SPCなんていうファイルも存在しないかもな
なんか資料が見つからなくて音→周波数の変換を 絶対音感でやってるのだが、どれだけ増減すれば 半音上がるのかがよくわからん・・・ 当時の開発者は任天堂から周波数と音階のテーブルみたいなのを 提供されてたんだろうか
学校でもらったプリントにそれっぽい文があったのでそのままコピ ・音程(ドレミファソラシド)について ラの音(Aの音):440Hz ※現在はラの音の高さを基準にする ・1オクターブ(倍音)とは 低いラ:220Hz…440/2 高いラ:880Hz…440*2 1オクターブ高くなると周波数が2倍になる ・ドレミファソラシド 下のラ(220Hz)から半音12個上がると上のラ(440Hz)になっている すなわち半音12=1オクターブ 半音上がると周波数がx倍とすると x^12=2よりx=1.059463...
71 :
名前は開発中のものです。 :2006/01/09(月) 14:57:44 ID:pUS+SJOz
周波数をレジスターに入れる値に変換する式を 教えて下さい!!!!
いや、例えば A 1 | 55.000000 | N= 2032.832386 = 07F0 h = 1111 0000 b xxxx x111 b 55.000000 を 2032.832386 に変換する式を。 x / クロック周波数 = レジスタの値 と睨んでるんだけど、xはcpuのクロック周波数でもないみたいだし・・・
75 :
名前は開発中のものです。 :2006/01/09(月) 15:52:50 ID:wv/eeb3+
77 :
70 :2006/01/09(月) 17:06:53 ID:pUS+SJOz
おいなんで
>>71 とID被ってるんだよ。
>>74 と同じだが
F = 111860.78125 / (N + 1)
N = (111860.78125 / F )- 1
IDの衝突耐性が低いから
お前らバカすぎてかなわんなー >54ですでに出てんじゃん
>>79 それ音階から周波数を求めるだけの数式だし。
求めた周波数をNESに適用するための数式が別に必要で、それが
>>77
0番スプライトを描画した瞬間を知る方法って、 $2002を監視して待つしかないんですか? 0番スプライトを描画した瞬間に割り込み発生させる方法とか ありませんかね??? 私が調べた限りでは、無いようですが…。
ボリュームの変更って出来る? mmlではチャンネル1,2は出来たけど。 $4000の下位4bitは音のフェードアウト具合だよね?
>>82 無いよー。
描画した瞬間というより、SPR0とBGとの当たり判定ね。
>>83 エンベロープ使わない状態だとボリューム設定になるよー。
86 :
82 :2006/01/10(火) 02:09:46 ID:lhfEE2/p
>>85 やっぱり無いですか、ありがとうございました。
SPR0とBGの当たり判定というのは、
走査線との当り判定という感じでしょうか?
画面中にスプライトの星をたくさん表示しようと思ったのですが、
$2002を監視しなければならないので、
ゲーム本体の処理は、V-BRANK中に全て終わらないと
駄目な感じですかね。
(表示期間中は、待って処理、待って処理…になってしまうので)
87 :
85 :2006/01/10(火) 02:32:52 ID:USK7EXbZ
>>86 >走査線との当り判定という感じでしょうか?
似てるけど違う…かな。
走査線がそこまで行って、BGとSPを表示する際、BGとSPのピクセルが
重なっていると$2002のbit6が1になる。
>$2002を監視しなければならないので、
>ゲーム本体の処理は、V-BRANK中に全て終わらないと
>駄目な感じですかね。
$2002のフラグ変化が起こるまでに処理が終了していれば良いわけで、
ゲーム処理がVBLANK中に全て終わる必要は無いよ。
フラグ変化を検出し何らかの処理を行った後もVBLANKに入るまでは
好きに使えるし。
ただ、VRAMアクセス等はVBLANK中に全て終わらせておく事が重要。
ぶっちゃけ割り込み使う方が楽だけどねw
ゲームよりも開発ツールとかドラクエツクールとか そんなの作ってくれ。
メインループ内でネームテーブルを書き換える方法を 教えて下さい。 例えば、画面の中心あたりのマスを書き換えるには どう書けばいいでしょう?
90 :
89 :2006/01/11(水) 01:21:01 ID:dgLDPcfU
自己解決しますた
.db 0 って何なんでしょう? まあ1バイト確保ってのはなんとなくわかるんだけど、 ニーモニック表に載ってないし。 あと右の0って
define byte 1バイトのデータ領域を割り当てる(定数や変数を定義) 0は初期化する値。 dw (define word) 1ワード=2byte ------------------------------ 以下はMASM擬似命令 dd (define double word) 2ワード=4byte dq (define quad word) 4ワード=8byte dt (define ten byte) 5ワード=10byte
おい、またID一致してるぞ 92=93
ISPと地域が一緒なんだろ
>>92 0のとこを変えても初期値はかわらないお?
どーやって確認したんだ?
自作のファミコンプログラムで
変わるはず?
多分
バカばっかし
http://gikofami.fc2web.com/nes/nes007.html とりあえずこの.dbの使い方はおかしい
.bank: 出力ファイルのカレント出力位置決定(8KB単位、もちろんヘッダは除いた上で)
.org: 出力ファイルのカレント出力位置決定(8KBのモジュロ)、
カレントアドレス設定
たとえば
palette_data:
みたいにラベルを書くと、ラベルとアドレスは対応付けられる。
そのためにアセンブラは今アドレスがどこなのかってことを知ってなきゃいけないでしょ?
それがカレントアドレス(俺用語なので注意)
.db: 出力ファイルのカレント出力位置にその数字をそのまま埋め込み、
カレントアドレス1進める
.ds: カレントアドレスをその数字ぶん進める(.codeまたは.data中はファイルに0を出力)
.zp .bss .code .data: よく知らないですごめん
RAM領域で.dbを使っても初期値はハード依存になるので意味無い
RAM領域での変数宣言は
>>101 の言うように.dsでするのが正解
ハード依存つーより不定。
NESASMならrs
84 :名前は開発中のものです。:2006/01/10(火) 01:16:46 ID:QfkWLPLl
ttp://up.isp.2ch.net/up/44da2566147f.zip 配線図は後で。
マッパ4(MMC3)用
ROMサイズはスイッチで切り替え。
PRG:32k〜512k
CHR:32k〜256k
SRAM他のからはずして加工すればCHR-RAMも使用可能。
おとせませんでした T_T
どんなことが描いてあるのでしょう?
詳細キボン!
>>105 まだ時間はある
モデムを繋いでISP2chに入会しなさい
>>105 何も描いてない
ミミズの這ったROM基板が写ってるだけ
有志が作った作品て無いの? grand theftendoはダウソ出来ないっぽいし
109 :
名前は開発中のものです。 :2006/01/13(金) 18:25:51 ID:TB4jRHS+
3角波チャンネルの$4009は未使用って事でFA?
110 :
105 :2006/01/13(金) 18:56:57 ID:XBF3VETm
106,107 >ありがとうございます う〜〜〜〜〜〜〜ん;;;
考えてみたらPSにはエミュレータもCコンパイラも存在するから PSも個人で開発可能だな。 しかしエミュレータの再現性が低いから あんまり流行らないだろうな。
おまえ最高に頭悪いな 最高に最低だぜえ
113 :
名前は開発中のものです。 :2006/01/18(水) 02:47:19 ID:1NB8Beti
おまいらいきなり黙っちゃってどうしたの
訊き逃げ
誰でもいいから計算機程度のものを作ってソース付きでうpしろ
うるせえバカヤロ 何でもいいから自分で作ってうpしやがれ
計算機って結構難しいぞ。 掛け算、割り算を自分で実装しなきゃならんし。 10進数の表示も。 ちょっと大変な処理するとすぐ処理落ちするし・・・
age
まるで自分は軽く出来るような言い草だな
関数電卓なら大変だろうが四則演算だけなら馬鹿でも作れる。
おまいら計算機も作れないのかよ・・・
計算機は今はちょっと作れないなあ ICが手元に無い
山田くーん >123の座布団全部持ってって
やれるってこととそれを実際に作って公開するってことは違うよ 口だけではなんとでも言えるから それこそ脳内コンパイル(アセンブル)なんて誰でもできますから 口だけで威張り散らしたり見下したりする事の無意味さに早く気付いてほしい
探せばいくらでもあるソースを探さず、読まず、 「俺のためだけにソース書いてください。解説付きで!あとCコンパイラください」 なんて奴は見下されて当然だと思うが。
>>126 わかりました。あなたには何を言っても無駄なのですね。
いつまでもそうやって馬鹿を相手にイライラしながら狭量な人間を演じ続けるといい。
きっと早死にするから。
わ い き
スレ趣旨がはっきりしないのでどっちを排除すべきかわからんな 誰か教えてくれ
排除なんてとんでもない! 馬鹿と馬鹿しかいないので便乗してスレを盛り上げるのが正解です。
いつの間に次スレ立ってんだよ。 (;´Д`)
CMの間に。
2バイト以上の値を10進数に変換したいんだけど どんな方法がいいですか?
俺もそのページ発見したけどとりあえず 自力で無理矢理実装しますた。 ゲーム作るなら誰もが必ず通る道なんで、 最適化された定番パターンがあるような気が。
どんな実装したの?
泥臭い事やってんのね
140 :
名前は開発中のものです。 :2006/01/27(金) 07:49:01 ID:Ehem9G7o
全部BCDで計算する
わり算、かけ算はどうしてるの? 自作ルーチン考えたの?
142 :
名前は開発中のものです。 :2006/01/27(金) 19:41:07 ID:G1e7lE/8
143 :
名前は開発中のものです。 :2006/01/28(土) 18:51:05 ID:+47znF+b
どうせバカしか居ねぇんだろうな、なんて思いながら覗いてみたら ほんとにバカしか居なくてワラタ う ん こ っ こ | !
エミュだとうまくいくのに実機だとスプライトがうまくイカネ
何でもいいからうpきぼん。 ソースはどっちでも
エミュでもうまくいってない気が
>>149 乙!
てかこれはゲームなのか?
ボタン押すとボールが表示されて消えるけど。
ゲーム乞食か・・・
まだ途中なんだけどね。 実機だとスプライトがうまく表示できなくて詰まってる。
エミュでもスプライトが表示されていないと思います。
画面上部の赤のランプが緑に変わる。 Bボタンで丸い物体が出現して動いて消える。 現状それだけ。 G-NES NNNesterJ VirtualNES で表示されてるのは確認した。 実機でやるとスプライトの表示が変(一部しか出なかったり。)
まずどういう動作をすれば正常なのか知りたいな
もっとシンプルなので試してみてはどうか。 真っ黒な空間に豆腐(スプライト)を表示させるだけとか。
あ、できた。
>>149 そこすぐ落ちるから、長持ちする他の場所にうpしてよ。
解決しならいらねーけど。
解決するわけないよ 若いコは知らないだろうけど、ファミコンて8個スプライトが 並ぶとそれ以上は表示できないんだよ エミュレータではたぶん表示できるんだろうね
いやエミュでもできないのある。
だからなんだよ
解決しましたよ。
本当にそんなことが原因だったの? ファミコンはオサレ世代か
エミュってスプライト制限を無くす機能があるけど、 これって無限にスプライトを表示させることができるのか?
スプライト9個も表示してた? 弾?だけスプライトじゃなかったの?
スプライト制限ではなくて、DMA転送の前に入れてたパッドチェックをDMAの後にしたら直りました。
実機と動作が異なるのではエミュレートとは言えないのではないか
スーパーマリオは効果音が鳴ってる間は メインメロディーが消えるんだよな。 これは音の設定を変える処理を浮かせる為なんだろうか。
メイン側が消える効果音と伴奏側が消える効果音と2種類あるみたい。 効果音2つを同時に鳴らしたいので どちらかはメインメロディーと同じ側の矩形波を使用するように設定されているってことでは。
メモリ少ねえな
脳の?
コンパイラをでっち上げてみたんだがRAMもROMもすぐ領域不足になる 1バイト変数にしないとダメだな
178 :
名前は開発中のものです。 :2006/02/12(日) 21:38:57 ID:v7b6xuYf
↑どれが初心者に使いやすいんだ?
どれも初心者には辛い NESの開発自体が辛い
サンプルをアセンブルしたり少し直したりした後 よーし、ゲーム作るぞ!ってとき、マッパーの選択で迷いますよね。 「ギコ猫でもわかるファミコンプログラム」もその話題のところで 途切れてる・・・ 単純に最大容量のものを選べばいいんでしょうか・・・ それとも2000hとか細かく切り替えがきくものの方がいいんでしょうか。
迷うならmapper0でいいんじゃない?
そもそもマッパーなんて何の意味があるんだ?
マッパー無いと読み込まないじゃん
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回繰り返してデータを溜める。
それが普通なんじゃないの? 他にもあったらおせーて
例えば1番と8番の曲を繋げて再生するときはどうすればよいですか?
188 :
名前は開発中のものです。 :2006/02/24(金) 16:40:58 ID:pKidOzJU
ギコネコ以外に分かりやすい解説サイトはないか? ギコネコでも分かる〜は専門用語を知ってることを前提で話を進めるから理解できん。
189 :
名前は開発中のものです。 :2006/02/24(金) 20:02:52 ID:kyUhytGE
CASLしかできない
専門用語くらい調べろよカス
いちいち専門用語なんて調べてられるかよ。 一つ一つの用語の意味を理解するのに、また用語が出てくるのに。 もっと単純に、ここはグラフィックを格納する場所、とかでいいんだよ。
>グラフィックを格納する場所 そこまで単純化すると 実際に格納しているのがBGなのかスプライトなのか分からんがな。 一見遠回りに感じるかもしれないがもっと高級な環境から始めた方が いいと思うがな。
>>188 無いと思うけど。
何がわからんのかここで聴いてみたら?
専門用語を理解しないとプログラムできないぞ? 調べる気がなかったら先へ進めない。
>>191 だからお前が何を専門用語と感じるかなんて誰もわかんねーんだよボケ
お前らみたいなクソを一人一人相手にしてくれるサイトなんてねえよ
何勝手に切れてんだゴミ?
ゴミとクソの喧嘩ですか?
ゲームに出てくる訳の分からんアイテム名やら魔法とかと同じだ 丸覚えしとけ
短気な人にアセンブラは無理
かなり根気いるね。 html少しかじった程度じゃ「ギコでも〜」が半分も理解できね。
マッパーの仕様と採用してるゲームの一覧とか載ってるサイトは無いですか?
203 :
名前は開発中のものです。 :2006/02/26(日) 21:24:18 ID:eYVW3o6B
くにおくんの時代劇を逆汗して解析してんだけど この部分何してるか分かる人います? 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メモリにデータ書き込んでるわけでもなさそうだし・・・。
>>204 ブートしてすぐじゃねーかw
なので、何らかの初期化以外には考えにくい。
>>207 気になるかw
MMC3の割り込み関係じゃねーか?
あれPPUのアドレス線見てるから。
逆汗ってツールは何使ってるんだ?
211 :
204 :2006/03/03(金) 00:40:06 ID:2AY1Y+BW
ううむ、ようわからん。
>>208 の言うようにMMC3のIRQカウンターあたりを初期化してるんだろうか。
バイナリいじって処理すっ飛ばしても動いたし・・・。
すいません。 オーバーフローフラグって演算した結果が-128(0x80)と127(0x79)をまたぐときに立つというのですが、 この場合、0x80-0x1がフラグが立つのは分るのですが、0x80-0xa0 = e0 の場合立たないようですが正しいのですか? 0x80-0xa0 = 0x80 + ~0xa0+1と考えると確かに0x79を跨いでないわけですが。 cmpやdecがアキュムレーターからオペランドを引いた結果でステータスフラグを変化させるという場合、 符号なしの8ビットか符号ありの8ビットかでキャリーフラグやオーバーフローフラグの結果が違いませんか? ファミコンの場合どうなんでしょうか?
213 :
212 :2006/03/03(金) 15:14:33 ID:slh2KuyN
すいません。 ファミコンの場合どうなんでしょうか?と書きましたが他のハードの場合のこともまだ良く知りません。
cmpもdecもVフラグを変更しない。
(-128)-(-96)=-32 -128〜127からははみ出てない >符号なしの8ビットか符号ありの8ビットか なんてのはこっちが意識しなくちゃならん話だから 符号無しとして考えてるならオーバーフローフラグは見ないし 2バイト長以上で使うならキャリーフラグも見る こんなんでどう?
異符号同士の減算で、符号が変わったら、オーバーフロー
アセンブラならNESDevkitが最強か?
nesdevkitまじ使えない
219 :
213 :2006/03/04(土) 18:41:01 ID:CCO2P6by
>>214 さん
cmpはVフラグ関係ないのでしたか。勘違いしてました。
decは書き間違えてしまいました。sbcのつもりでした。
>>215 >>216 さん
なるほど。つまり演算の結果だけを考えてやれば良いのですね。途中の経路は考えないでよいと。
みなさんありがとうございました。
NESDevKitってアセンブラじゃなくね?
mmc1のドラクエ3でリセット直後やNMI後にロム領域の0xFFDCをインクリメントしてるんですが、これってどんな効果があるんですかね?もしやmmc1のレジスタをリセット出来たりします?
質問のレベルが高けー
225 :
222 :2006/03/06(月) 13:04:12 ID: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 のようなことなのかと思ったしだいですが、やっぱり初耳ですか。
じゃ、どこでリセットしてるんだろ。種類の違うレジスタに書き込むとリセットするとかあるんでしょうか。
226 :
224 :2006/03/06(月) 14:10:15 ID:qqWLxZKz
>>225 俺も自作のエミュにそんな特殊機能つけてなかったっす。
そういやDQ3でテストしたこと無かったんでちょっとやってみます。
227 :
224 :2006/03/06(月) 14:33:00 ID:qqWLxZKz
案の定DQ3動かなかったです。 よく見てないけど$6A58に書き込もうとしてエラー回避でストップしてる。 そういえば輸出用のrockman2でも$42FF書き込みという特殊?なのがあったな。 あれはたしかPPUのミラーリング方式の変更だっったか。 0xFFDCもきっと何か意味があるね。 virtuaNESのソースでも探ってみます
>>225 mappers.txtは全然当てにならないな。あれに載ってる通りにやって動くのは2種類ぐらいじゃない?
nester系のマッパー1の実装方法で動かないなら、ほかに原因があると思われ。
>>228 マッパーってNESの解析した人たちが勝手に作った気がするんですがどうなんでしょう?
きっと任天堂のNES仕様自体にはマッパーなんてなくて、
ここのアドレスに書き込むとこう動くってのが細かい仕様が
全ROM共通であるだけじゃないのかと思う。
上でも書いた$42FFもRockman2のmapper2には存在しないけど、
他のmapperには$42FFが存在して、rockman2で期待してると思われる動作内容になってる。
>>225 というか、持ってるDQ3のROMがmapper2なんだが、
もちかしてこれハックロムかorz
喋りすぎなんでこれで落ちることにしますが、 virtuaNESではとくに何も特殊処理をやってなさそうです。
>>230 自 分 で 吸 い 出 し て い な い の か
漏れのもマッパー2だったorz
>>228 そうなんですか。二つって言ったらマッパー2と3だけですかw
>nester系のマッパー1の実装方法で
nesterJのソース見たらレジスタが変わったらリセットするみたいですね。コメントまで書いてあった。
mmc1レジスタ3へのincもそのあとに実行するレジスタ0への書き込み時にリセットを確保するためみたい。
手許にあるエミュのソースにはどれも書いてなかった。(これらはどれも今の環境じゃ実行できないから
確かめられないエミュだけど、たぶんドラクエ3はうまく動かないんでしょう。)
>>230 なんかDQ3をマッパー2って説明してある資料も幾つかありますね。キャラクターバンク数0だからか?
あと
>>233 の情報ありがとう。
>>225 あんたエミュ作ってるのか。
>>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って実は特殊カセット…とか
各アドッシングモードを実装するとき、 @,Aを分けるような実装しないとまともに動かんよ。 例えば、inc $FFDFだからといって、 ただメモリのFFDFを++するだけの実装じゃだめだ。 ちゃんとAの時にバンクチェンジのレジスタにアクセスするような実装にしないとね。
>>237 ああ、なるほどなるほど。目から鱗です。そういう理屈なら、FFDFが0x80だと気が付いていたらnesterのソースを参照しなくても感が良ければ解決してたかもしれないのでしたか。
となると、手元にあるエミュにnesterJの処理がないのは問題では無かったのですか。
あと、他のメモリにマップされたレジスタとかも、例えばリードで初期化されるようなものとか気をつけなくてはならない所もあるということですね。
>DQ4って実は特殊カセット
そうなんですか。こんどmmc1の512K以上のromの対応を行ってドラクエ4をプレイできたらと思っていたので肝に銘じて取り掛かります。
DQ4が特殊カセットだと主張する理由 mmc1レジスタの $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と考えるのが自然)。
MMC1で、形状が大きな特殊カセットでは $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のソースをヒントにして 実機カセット開けて見た結果っす。 間違ってたらゴメンということで。
>>240-241 詳しい情報ありがとう。
自分は無いけど、こういうところはマイコンの知識とかあったほうがいいんでしょうね。
WRAMオンオフとか考えたことなかった。そういやセーブしても冒険の書が無い初期状態から始まる。
カセットを差したあとのsramをマップしたりの操作も、マッパーがやるわけですね。そんなことmappers.txtには書いてなかった。
#あと、
>>236 関連、マッパー3もmappers.txtの情報だけじゃ動かなかった(16Kロムの場合二箇所にマップする?ちがうかな)。
243 :
242 :2006/03/07(火) 17:07:43 ID:c4EobbKX
連騰スマソ ちがうくなかった。 VirtuaNesのソースも見させてもらったけど、二箇所だった。 残念だが、やっぱ既存エミュのソース参考にしなきゃだめかも。
>>244 すげーーー。回路さっぱりなオイラからするともはや神を超えてる
>>244 開発履歴の最初に全米が泣いた
>> 1991.6.20ファミリーコンピュータを親から買ってもらう
SFC出てるのに・・・
FPGAでファミコン互換ハードを自作 当然CPUやPPUも自作ということ
例えるなら、プログラミングでエミュ作るようなもの。 FPGAっていうプログラミング可能なディジタル回路を VHDLという言語で記述して、ファミコンを再現してる。 おそらくアナログ部分は外付けかと。
252 :
名前は開発中のものです。 :2006/03/24(金) 23:14:02 ID:M48qEDSo
ところで、自作nesゲーがレボリューションで遊べたら感動的なんですけど、 ありえないかな?
レヴォのDLって任天堂のゲームだけなんだっけ 自作NESについては外国の方がなんとかしてくれるはずw
は?氏(ryねよ
256 :
名前は開発中のものです。 :2006/04/02(日) 01:49:58 ID:Jseo5NcA
255 :名前は開発中のものです。:2006/04/02(日) 00:45:35 ID:IVE6Qv5y は?氏(ryねよ
誰かゲームの企画してくんない?プログラムは俺がやるからさ
じゃあファミコンで3Dデモ作ってみてくれよ
259 :
名前は開発中のものです。 :2006/04/04(火) 06:37:12 ID:SWfItVmb
点ポリゴンなら不可能ではない。
でもファミコンでやる必要は無いよなあ
アフターバーナーのタイトルデモみたいなのを作るとして、 計算しないで全アニメーションのフレーム数分 すべての点の座標を持って描画するだけ…それでも結構重そう。
>>261 ROM領域でもDMA転送出来るから、バンク切り替えで比較的楽に出来ると思う。
>>261-262 これって3Dデモって言えるかわからんけど、dmaていうとスプライトってことで、64枚だけしかつかえないわけだから、それよかvrom切り替えたほうが良いのと違うの?
ワイヤーフレームならGBでも出来てるみたいだし FCでもそれっぽいものは可能なんだろ?
たとえばスプライト一枚=1ドットとして使って 64ドットでできる形状をコントローラでぐりぐりまわすだけでも 毎秒2、3コマとかになる気がする
ファミコンのワイヤーフレームは見たことがある。
>>265 263だけど
スプライトならそういう使い方できるのでしたか。
1枚1ドットなんて考えなかった。
>>266 欧州のどっかの国のFなんとかってゲームの事だと思うが、
あれはワイヤーフレームでは無いぞ。
スプライトでそれっぽく見せてるだけ。
てかファミコンでワイヤーフレームはハードウェア的に
不可能って事も知らないのか。
>>261 以下の話の流れからすれば「ワイヤーフレームっぽい」「3Dっぽい」ってことだろ
なんでFCなら不可能なんだ?
画面の好きなとこに点打てないだろう。
>>273 スレタイ1000回タイプしてから出直してこい
↑この人なんで怒ってるの?
ちゃんと表示されるワイヤーフレームを見た様な気がするんだよな。
GBで出来てファミコンで出来ないわけがない
>>278 GBは4階調
FCは4色
この違い分かるかな
>>280 そういう問題じゃないような気が・・・
4色じゃないし
ファミコンで使用可能なのは52色 さらにパレットとして指定できるのは32色 BGで4色*4 スプライトで4色*4 1つのスプライトで使えるのは4色だけどその内1色は透明色だから実質3色 BGのタイル1つ(8*8)で使えるのは4色(内1色は透明色)しかし2*2の4つごとにしか設定できない。 こうしたところで「色」という字がゲシュタルト崩壊
スプライトの0番パレットが背景色になるのはなぜなんだろうね 別にどうでもいいって言えばどうでもいいことなんだけど なんでBGの0番じゃないんだろう?
284 :
名前は開発中のものです。 :2006/04/09(日) 02:47:59 ID:tgWOJxAE
スプライトの方が没用性が高いから
285 :
名前は開発中のものです。 :2006/04/09(日) 06:55:11 ID:k5KEnpqf
>>278 Xの事を言ってるんだと思うけど
絶対違うと思うぞ。
任天堂が初めて3Dやったのは多分
SFCの、スーパーFXチップって拡張チップを積んで初めてだから。
ファミコンのアーキテクチャを知ってれば
ワイヤーフレームはハードウェア的に不可能だって
わかるはずだと思うが。
って俺ムキになりすぎ
286 :
名前は開発中のものです。 :2006/04/09(日) 07:40:45 ID:tgWOJxAE
SFCの3Dゲームは92年発売のOUT OF THIS WORLDが最初。 当然チップなんか積んで無い。3Dデモ程度ならゼルダでも出来てるし、フロントミッションでもローポリ表示させてる。 画面の好きなところにドットを打てないから不可能とか、的外れもいいところだな。
>>285 ハードウェア的に不可能だとどうしてソフトウェア的にも不可能になるんだ?
>>285 の持ってるワイヤーフレームのイメージがかなり限定されてる気がする
ハードのどんな機能が必要だと思ってるのか、と
「ワイヤーフレーム」がどの程度のものを考えてるのか、もう少し具体的に説明してくれ
ティアリング無しには三角錐の描画すらできないんじゃないかなあ
>>287 >>288 ぜひ自分で作ってみてほしい
そして完成したら教えてほしい
マッパー調べた。容量に着目して一番大きいものを探した…
MMC5がnsfのドライバでも使ってるのでイイかと思ったけど制御が複雑すぎ。
MMC3というのもあるけど512KBまでしか動かないらしい。
PCMのデモを見つけてソースを分析。マッパー#2を使用してる。
また、NESASMでは64ページ以上のPRG-ROMはダメらしいつまり
開発の上限は1024KB、1メガバイト。
たったの1メガバイト…何が出来るだろう。
>>257 さん、NESに詳しいのでしたらどのマッパーが一番
容量を大きく作れるでしょうか。ディスクは無しで。
出来たら画像を表示するサンプルを作ってみて
いただけないでしょうか。
>>276 これってワイヤーフレームとは言わないのか?
隠線消去が施されてる辺り凄いと思う
>>293 あくまでも擬似だろう。
まあワイヤーフレーム扱いでもいいと思うけど。
>>279 がlzhで1240バイトに収めてるのってなにげに凄い
それよりどうしてイスラム板。
>>292 じつはそのサイトすでにMMC5でググったときに発見したんです。
MMC3が512KBというのもそこからの情報です。
スゴイですよねAIRは知りませんが興味がわきました。
そのくらい力のこもったデモです。
そこのソースやMMC5の仕様書を探してきて僕には
ちょっと理解できないかなと・・・時間をかけて自分で分析してみます。
$8000に番号を設定するだけの単純制御のマッパー#2がやっぱり好みです。
>>296 nesdevにも2KB以下の物置いてあるけど、音とか動きありの表現の多彩さという点から見れば、このコンパクトさは秀作の部類に入るだろうね。でもどうせMMC3でやるならIRQカウンタ利用でもちょっとだけ面白いこと出来そう。
>>279 遊び方が分からなくて速攻で捨てた。
どうやって遊ぶの?
>>301 >>279 のスレ読んでみると分るけどこれゲームじゃなくてNES使ったコテをからかうネタらしい。
>>279 ゼロページをデータRAMとして使いながらそのままスプライト領域としてDMA転送してるけど実機でゼロページからDMA転送出来るっけ?
>>292 ここのPCMで鳴らしてるヴィヴァルディって実機でも再現できるのか?
なんかここまで出来るとは思わなかった。
http://gamdev.org/up/img/5290.zip マッパー#2サンプル
なぜかネットのサンプルはCHR-ROMを使ったものが多いので
画像を転送するとこは調べて実装しなきゃならなかった…
ゲーム中にサウンド鳴らしスプライトアトリビュート転送しながら
画像も転送するの大変そう。やっぱchr-rom切り替え方式の方がいいのかな?
#2はシンプルで扱いやすいゆえに腕しだい次第なんだろうど
マッパーによっては拡張機能があるのにそれを利用できないってのもありますね。
>304
nsfをやってる人はたぶん実機再生にこだわるのでしょうね。
ゲーム作りたい僕はいろいろ考えたあげく実機はあきらめ、
携帯機用エミュで動くかどうかむしろ気にしています。
パターンテーブルって$2000バイトあって、512キャラ表示できるよね。 でもネームテーブルって1バイト指定で0〜255までしか指定できないんだけど。 後半256〜512を指定するための1ビット情報はどこ?
PPUレジスタ、$2000のbit4
最近NESプログラムを始める人が増えたのかね いいことだ
>>305 みたいにソースにCHRを直接組み込むのと分けるのとではどっちがいいんだ?
通常分けたほうがいい。 .bank X .org $XXXX .incbin "CHR-filename.chr" みたいに。 分けた方がyy-chrで編集しやすいだろ。
>308 ありがとうです。
バンクチェンジすりゃいいんじゃねえの?
実機でスーマリとかでクリボーとかが沢山出てくると描画がガクガクするけどその理由ってどこにあるんでしょうか?
処理能力
319 :
名前は開発中のものです。 :2006/04/15(土) 13:07:27 ID:EPF6oi/c
マッパーって自作できるのか? 中国とか特殊なマッパー使ってるみたいだし
>>319 カセットがマッパー使ってるんじゃなくてカセットに合わせてマッパーつくってるんでしょ。
>>319 もちろんできるがエミュで動かすには新規マッパーをエミュレート
できるように変更が必要になる
>>319 実機なら楽勝。
オープンソースのエミュならソースを改造すれば行ける。
マッパーの仕様作って64Mbまで使えるようにしたら最強じゃん!
最強(笑)
なるほど
最強
最強
ということは$8000〜$FFFFをSRAMのように読み書き両用にするようなマッパーも可能?
↑「SRAMのように」というか「RAMのように」ということです。
容量が足りないって言ってる人はどんなの作ろうとしてんの? 絵は確かに少ないかもしれんがプログラムだけで何MBも埋められるのか?
曲に波形データを大量に使うとか?
もういいって
>332 僕の場合はマッパー#2を使おうとしたので、 マッパー#2はキャラクターバンク無し、パターンテーブルはRAMでPRG-ROMから転送。 グラフィックデータを圧縮できる反面NESASMの制限で 最大容量が1メガバイトというのはちょっと困りました。 MMC5(AIRデモ)を調べたらNESASMにとって自然な8K切り替え方式、 サウンド、WRAMなどの拡張。CHRバンクが持てるなどの メリットがあり、プログラム1メガバイト+CHRバンク ということでこちらの方が断然いいみたいですね。 CHRバンクを最大いくつ持てるのか気になりますが…研究中。 何を作るのかは考えていません… >260 :名前は開発中のものです。:2006/04/04(火) 10:46:33 ID:HDFKdFtC >でもファミコンでやる必要は無いよなあ ずっと気になっちゃって。普通にDIRECTXですごいことができるのに なぜNESで苦労してゲームを作るのかと
>334 すごい。無理すればワイヤーフレーム表示できるみたいですね。 ただ、どのエミュでも表示がバグってる… NES程度のマシンで3Dするにはかけ算とかわり算の処理をいかに軽くするかが ネックになりそう そういえばNESでわり算するには 3000/200なら3000から200を引いていくしか無いんですよね? 二進数で考えてもっと高速に出来ないでしょうか。
>>336 >>NESASM制限
そんなのソース分割コンパイルして
自作ツールなり使って再結合すればいいだけじゃん。
それか他のアセンブラ使えよと。
結局NESファイルヘッダの仕様上、
PRG =4MByte
CHR =2MByte
までだけど
結局何MBまで使えるんだ?
nesdevにあるDASM32というアセンブラを使って 4メガバイトのマッパー#2 ROM作ってみました。 (ソース汚いので公開はかんべん) NESヘッダの設定ですが、個数で設定するので最大FFつまり 255個、4メガバイトより1バンク分小さくなります。 いくつかエミュで実行させたんですけど、 うまくいったかと思ったら、データを1バンクずらすと 正常に参照できないみたい、つまり動作不可。 g-nes…ROMの高位番地ではデータのあるバンクが一つおきで正常に動作しています。 アドレスの低いところでは正常動作。 PocetNES なぜか?GNESと同じ動作。不思議です。 NnnesterJ GNESと反対のバンクで正常動作。 VirtureNES これのみ正常動作 yame 起動すらせず 想像するにそれぞれのエミュではPRGROM用の読み込み領域を 1MB程度もってて、それより高い番地のデータはCHRROMに読んでしまう、 それで$4000で区切られているべきデータが$2000になってしまい、 データがどこかへ飛んでしまうという・・・ 一応「PRGROMの最後の$4000バイトをC000にハードワイヤする」って 動作をしてくれるエミュは起動だけはしますが…。 正常動作がVirtureNESのみとは寂しい結果に。やっぱり1メガバイトで我慢します。 みんなが使ってるNESASM使えますし。 >341 NESASMを使うと .bank 127 ;1バンクは8kバイト が最大ですから、PRG、CHR関係なく全体で1メガバイトのROMを作成します。 マッパー#2、MMC5関係なくこれが限界です。
>342 「データをずらす」とは .bank 100 .incbin "data.bin" を.bank 101 とかにすることです。
マッパー#2(UxROM)に搭載されている74HC161は4bitカウンタなので ハードウェア的には16KB×16バンク=256KBが上限 HVC-UNROM(ドラゴンクエスト2)は128KB HVC-UOROM(桃太郎電鉄)は256KBのPRG-ROMを搭載
128KBもあれば十分だろう? どんな大作つくるんだか
>>344 のPRG領域をCHRとして使うことは出来ないの?
任天堂はマッパーとか何で面倒くさい仕様にしたんだろう。
おっとアホが一人登場〜
マッパーは任天堂が作ったんじゃない。 inesの作者が作ったんだ。
352 :
名前は開発中のものです。 :2006/04/21(金) 17:19:24 ID:jGYnqhJ2
cnrom的な拡張で$8000-$FFFFまで(0x40000ビット)をすべてバンク選択レジスタにするマッパー作れば (2 ^ 0x40000) * 8kバイト じゃね?
4MBもありゃサウンドやスプライトのモーションを贅沢に使えるな
だれか バトルボックス、パチンココントローラ、ホリトラックを解析してほしい。
>>356 それ、ぜんぜん解析されたといわない
ちゃんと解析されてたらエミュで対応されてる
358 :
356 :2006/04/25(火) 10:31:52 ID:EUMeUoZj
>>356 FCdevへ ようこそ
かなと思った。
自分で解析すりゃいいじゃん
マッパーについて 長文になるがスマン マッパーについて詳しい事は分からないが、これはNESのヘッダ同様、 iNES作者がnesRomをエミュ上で動かす為に作った情報と思われる。 それは、6502のメインメモリ内で行うバンクの切り替え方式や、持てる サイズ容量、つまりPRG-ROMやCHR-ROMの数もマッパーにより違う。つまり マッパーというのはメモリを管理し、データをメモリに割り当て、実行する 手順の方式のようなものだと思う。 そもそも、従来の任天堂のファミコンのシステムには、マッパーという概念 がなく?メーカーそれぞれによって、拡張システムを使うことなどによって、 メモリの管理の仕方が違ってくるのは当たり前で、だがこれはマッパーという 概念がなくても出来た?けど、エミュ上で動かす際に、各メーカーの実行方式 などを分かりやすく整理させようって事で、NESの作者がメーカーごとなどに マッパーというのを振り分けたんはないだろうか?そしてこのマッパーごとの 実行方法を、エミュレーターに定義させて、これからやるNESROMの中に、その 定義させた同じマッパー番号があれば、晴れてエミュ上で動き、プレイ出来る という感じではないだろうか?つまりマッパーという概念は、エミュレーター から始まったんじゃないかと思う
皆知ってるよ
>従来の任天堂のファミコンのシステムには、マッパーという概念 >がなく?メーカーそれぞれによって、拡張システムを使うことなどによって、 >メモリの管理の仕方が違ってくるのは当たり前で その拡張システム(拡張回路&拡張チップ)がマッパーの事だ。 まあ、マッパーという名前自体エミュができてから付いたんだけど。
つ バンク切り替え
・マッパーの名前は以下のルールで付けられている チップ(メモリーマップコントローラ)名 > PCB(基板)名 > メーカー名 > ゲーム名 Nestopiaというエミュレータのドキュメントが世界一正確である。 ・マッパー番号は、カセット解析者&エミュ作者が勝手に採番している。 ・最近は、iNES形式だとマッパー番号に限りがあるので(0〜255)、番号にとらわれないUNIF形式という 新フォーマットが主流になりつつあるが、UNIF形式のROMイメージを作ることは容易ではなく、 めったに出回らない。
iNESの作者マーラット・フェイズリンがマッパー34まで定義した。 他のエミュ(Nesticle他)もその定義を守っていたが、新たなカセットを吸いだすにつれ 34までのマッパーでは動かせないので、マッパー4に改造したりと、ユーザーは無理やり 動かしていた。そこで一石をとうじたエミュがfwNES。fwNESはそれまでタブーだった 「マーラット以外の人間による新しいマッパーの定義」を打ち壊し、独自のマッパーを新しく定義した。 結局マーラットもfwNESで定義されたマッパーをiNESで採用することになる。
本当は日本人がマッパーの概念を作った方がいいのにな
368 :
361 :2006/04/28(金) 01:23:16 ID:fPhSWEUn
みんなマッパーについてレスthank お陰でより分かった。 ついでに分からない人の為にバンクの簡単な 説明もしてもいい?
よろしく。
370 :
361 :2006/04/28(金) 08:13:33 ID:fPhSWEUn
バンクについて 間違ってたら誰か指摘して まずNESromは、ヘッダー(先頭16byte)+PRGROM+CHRROMの3構成 から出来ている。PRG-ROMとは実行命令、分かりやすくいうと、ゲーム の進め方を表記しているいわばROMの核の部分。サウンドデータもPRG- ROMに含まれる。CHR(キャラクタ)-ROMとは、ずばりスプライトやBG の画像データ。が詰まって集まっているROM領域。画像データと言って も、16進数の数字で絵を表現しているから、実際には数字の集まり。 そして、ファミコンはPRGやCHR-ROMのデータは、いくつかのBANK(バンク) という固定容量に分けて管理している。PRG-ROMは16kb(これは6502メイン メモリ内の$8000~$BFFF、$COOO~FFFFのPRG領域のどちらか16kb分)ごとに、 CHR-ROMは8kb(これはVRAM、つまりPPUメモリ内の$0000~$2000のBGが4kb、 スプライトが4kbの合わせて8kbが限界のパターンテーブル分)ごとに分けて、 1バンク、2バンクという単位に分けられている。そして、16kbでは とても表現しきれないPRG、ゲームでいうと、ステージが増えていくごと にとても16kbのPRGでは表現しきれないので、ステージごとにバンクを(一気に PRGを)切り替えて新たな16kbでゲームが表現出来る。
CHR-ROMの場合、ファミコンのVRAMは8×8ドットの画像データを、 BG、スプライトそれぞれ256個しか一度にVRAMに貯めておけないため、 ゲームでいうとテトリスみたいなCHRデータをあまり使わないゲームだったら これだけで(1バンクだけで)足りるけど、何面もステージがある アクションゲームなどは、256個のタイルだけじゃとても描ききれない。 そこで、ステージごとに、あるいは、そのステージ内だけでも256個の タイルでは足りなくなった場合、バンクを切り替え、さらに256個の新たな 画像データも使うことが出来る、こうやってバンクを切り替えることによって、 CHR-ROMの場合、256個の制限が、実際512個でも768個でも使えるようになる。 しかしもちろん切り替える前に使っていたバンクの画像データは使えないので、 必要であれば今使っているバンクも同じ画像データを入れて置くといい。 最後に、そもそもファミコンの処理能力の限界が、6502CPUのPRG領域が $8000~$BFFF、$C000~$FFFFそれぞれ16kb、画像を貯めておく領域が8kb(拡張 チップなし前提に)なのでこれ以上1つにまとめすぎても、効率は一緒だし、 順々に読みこんでいくより、こうして細かく分ける事によって、 バグが発見しやすくなり、再編集するにも目的のデータに比較的 素早くアクセス出来るようになり、しやすくなる為です、かな? 簡単にまとめるどころか長くなりすぎたorz スマン
そのVRAMってのは違うな。 ファミコンでVRAMと言ったらPPUアドレス$2000〜を言う。
>> 370 すげぇ。パソファミで吸出しをしているので結構勉強になったよ。
久しぶりにテトリス(BPS)やった。十字キーの下押すとブロック回転 という操作性の悪さだが、Aボタンで回転するようにならない? 教えて分かる人。
ギコ猫以外にアセンブラの講座ないのか?
>>372 chrバンクの無いカートリッジは$0000からがvramじゃないの?
CHRがあろうがなかろうがPPUのRAMはVRAMだろうが
海外人の名付け方は、ちょっと変なんだよな。 $0000〜1FFF:CHR-ROM or CHR-RAM(CROM、CRAM) $2000〜2FFF:VRAM SRAM:日本ではバックアップ用スタティックRAMのこと。海外ではセーブRAMと書かれている。
vramじゃなくchr-ramか。
0000-1FFFはカートリッジに実装(RAMorROM 2000-2FFFはファミコンに実装(RAM これが通常のスタイルだから後者の方をVRAMというべきだろう。 6000-7FFFはファミコンではW-RAMという。 カセット分解すればそう書いてある。 NES通はそう表記する人も多い。 上記は全部SRAM(スタティックRAM)である。 ちなみにディスクシステムのRAMアダプタの BIOS領域はROMで、 PRG領域はDRAM(ダイナミックRAM)で、 CHR領域はSRAM(スタティックRAM)だ。
prgを書くとき必須のヘッダ情報とかあんの?
>380 $0000-$1fffはカートリッジにRAMが積んであるんですか? 本体にRAMがあってVROMがあるときはRAMが見えないように なってるだけかと思っていました。
GWに厨学生が来ないスレ
ええこっちゃ
>>378 SRAMって書いてもどのSRAMかわからんことになるからセーブするやつはセーブRAMと書いてるんじゃない?
SRAMのSはSAVEのSじゃないと思うぞ。多分・・・。
>SRAMのSはSAVEのSじゃないと思うぞ。多分・・・。
だから
>>378 もいうようにスタティックramのSじゃないのかな?
>>383 その通り、CHR-RAMはカセットに乗ってます。
>>387 スタティックRAMなのは知ってるよ。というか常識的にはスタティック。
でも
>>378 の彼はSRAMのSを海外ではSAVEのSと捉えていると思ったんだろう。
390 :
名前は開発中のものです。 :2006/05/06(土) 21:31:23 ID:ZtJ8ZPor
なんかぜんぜんオリジナルROMが存在しないのは どういうわけだろう。 みんな技術勉強して満足しておなかいっぱいなのかな
プログラムの才能とゲームデザインの才能は違うってことかな 面白いゲーム作りてーなチクチョー
ファミコン版AIR作ってる人おるやん
AIRはオリジナルじゃないしな〜… ついでに改造でもないな
大学の講座で作った奴が以前出てたような
誰かアセンブラの解説サイト作ってよ
10万円くらいもらえるなら作らんでもない
>>398 それそれ。
音楽入りの奴もいくつかあるね
401 :
名前は開発中のものです。 :2006/05/11(木) 04:16:35 ID:+L3VinsW
>>398 これってnBasicとか言う奴で作った奴だっけ?
アセンブラなんて無理だから、ファミベーのキャラ書き換えOKで容量UP版みたいな奴が欲しい。
誰か作ってくれないかな。
そのファミベーってどんな仕様?
VirtuaNES v0.93
∩ _( ⌒) ∩__ //,. ノ ̄\ / .)E) /i"/ /|_|i_トil_| / / / ̄ ̄ ̄ ̄ ̄ |ii.l/ /┃ ┃{. / / < バァ〜チャ! |i|i_/''' ヮ''丿i_/ \_____ i|/ ,ク ム"/ / |( ヽ -====-\ ゞヽ 三 ) )) \ヽ ノ )____{ ∩ _( ⌒) ∩__ / /,. ノ ̄\ / .)E) /i" / /|_|i_トil_| / / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |ii.l/ /┃ ┃{. / / < ネス!ネス!出たわよー! |i|i_/''' ヮ''丿i_/ \____________ i|/ ,ク ム"/ / |( ヽ _,.-===、j、 ゞヽ‐イ/´ ヽ ヽ、 \! ::c:: ! :p }ヽ __ ノ、_ノ / ノ ノ´
カートリッジのピン配置ってロムアドレスとロムデータとキャラアドレスとキャラデータのピンの他には、制御関係のピンしか見当たりませんが、バッテリーバックアップデータ用のsramとはどのようにつなっがっているのでしょうか?
>>407 W-RAMの制御関係のピンは、
実際にカセット開けて、NESDEVのrom.txtってファイル見るといい。
W-RAMデータバスとアドレスバスは、PRG-ROMと概ね共有してるかと。
マッパーのチップがW-RAMの制御関係ピンの挙動を制御してるってこった。
あと、本体の回路図見るといい。 74LS139で制御の分岐があるよ。
質問があります。V3実機でSYSTEMと入力するとどうなるのでしょうか?
412 :
名前は開発中のものです。 :2006/06/11(日) 21:17:35 ID:w/FwkWLZ
>>408 マッパーしだいなのですか。マッパーは44番ピンがアクティブがどうかで判断してるんですかね。
回答ありがとうございました。
>>412 大体そんな感じでしょう。
より詳しいことは知らんし。
ファミコンゲームの仕様ってどんなだっけ?
質問は日本語で
100メガヘルツ動作のファミコンエミュキボン
417 :
名前は開発中のものです。 :2006/06/21(水) 20:21:15 ID:NdFO4MOE
質問でつ!
なんとトラ技付録を手に入れますた!!!
>>244 みたいなことやるにはどうすたらいいのかおせーてくだつぁい
トラ技付録ってなんのことや?
トラ技7月号の付録じゃ無理だよ。
420 :
名前は開発中のものです。 :2006/06/23(金) 03:23:50 ID:8GMm/XaD
4月号の付録に決まってるだろ(>_<;)
>>244 みたいなことしてガンガン飛ばしていきたいからやり方を伝授しろ!
118ページより引用 >DIPタイプのロジックICに換算して数十個に相当するような回路も入ってしまうほどです.
422 :
名前は開発中のものです。 :2006/06/24(土) 20:18:08 ID:abj5NfkN
>>421 で、肝心のファミコンってIC幾つなの?
423 :
>>422 :2006/06/25(日) 17:19:11 ID:ZrEWtEIV
なあなあファミコンってもしかして 1画面に表示できるのはスプライト256個とBG256個だけなのか? バンク切り替えすれば一度にいくらでも描画できるってわけじゃないのな
425 :
名前は開発中のものです。 :2006/06/26(月) 04:34:33 ID:kbJtR1D+
>>425 まぁNESの構築は無理でも、あの基板があればそれなりに面白いことは出来るから
この際マイコン工作を始めてみてはいかがか。
敢えてNESにこじつけるなら、ROMの吸出しをあれでやってみるとかね。
>424
そこでラスター割り込みですよ。
画面真ん中で割りこみをかけてバンクを切り替える。
nesdev.comに古い資料があって「ゼロ爆弾」という割り込みが
有るらしいという情報に振り回されて時間を潰した。
ゼロ爆弾は存在しません。つねにスプライト#0を監視する必要有り。
(ギコ猫でもわかるファミコンプログラミング参照)
nesdev.comのTANESPOTというデモが画面真ん中へんで割り込みをかけて
BGを切り替えて文字表示してるみたい。virtureNESで
パタンピュア表示すると、なぜか文字の画像がないのでびっくりする。
http://nesdev.parodius.com/TANESPOT.zip 自分でもやろうとしたけど挫折…
428 :
名前は開発中のものです。 :2006/06/26(月) 21:37:51 ID:aMy2puCh
トラ技付録でオリジナルマッパーICをつくろう! えいえいおー!!! 本日、カレー曜日(プゲラ
429 :
428 :2006/06/26(月) 21:42:31 ID:aMy2puCh
悪乗りスマソ 知ってると思うが、msxガリウスリスペクトゲーム、La-Mulana完全版、本日公開でつ
>>428 電圧の壁(´・ω・`)
3.3Vと5Vの
431 :
名前は開発中のものです。 :2006/06/26(月) 23:34:57 ID:B509NSnp
>電圧の壁 間に 74xx244 とか入れるといいなじゃないっけ?? 付録とかでもそうなってたような気が・・・
夏休みにはまだ早いよなあ?
433 :
名前は開発中のものです。 :2006/06/27(火) 05:21:15 ID:GksfYSD2
>スプライト256個とBG256個 スプライト64個とBG960個ね
>425氏の言いたいのはVRAM2000hのうち前半256キャラと 後半256キャラのことかと。いろいろと絵を登録してくと すぐ足りなくなるからなんとかならないかという意味では。 そういや、スプライトが同時に表示できるのはたった64個なんですね。 横に9個ならぶと消えるし。CPUの速度考えたら64個もタスク出せないし。 制限多すぎ。何か作りたいと思ってもクソゲーやクソデモしか作れない・・・ 昔のゲームクリエイターは何を作ってもクソゲー扱いでつらかったろうね。
そこで奇跡を見せるのが醍醐味だったのだろう。
たしかに奇跡はあったな。 ROCKMAN2のOPのビルを映しながらの上昇とか
437 :
名前は開発中のものです。 :2006/06/27(火) 23:04:19 ID:o+Awi62W
>>423 代理店次第じゃ8万の方もチップだけなら3千円位で手に入るみたいだね。
438 :
424 :2006/06/28(水) 01:34:41 ID:GeExzqJg
>427 なるほど。こうやればフォントだけのバンクとか作っても大丈夫そうだな。 >433 そういえばそうだったね。書き方も悪かった。
440 :
名前は開発中のものです。 :2006/06/28(水) 21:00:05 ID:Y8+Rjg6U
>>439 サイトアドレスがdyndnsな件が気になるね。
441 :
名前は開発中のものです。 :2006/06/28(水) 21:17:43 ID:Y8+Rjg6U
>>439 なんか見たことあるサイトに見えたけど、
秋月電子で発売予定のサイプレスマイコン使ったez-usbというやつの販売元なのか
どうしてセガのプログラムの凄さに誰も気が付かないんだろう
どうしてそれをここに書くんだろう
444 :
名前は開発中のものです。 :2006/07/02(日) 17:29:24 ID:Q/g7fRXs
スプライト(小妖精)の一ライン表示制限を利用して キャラクタを行為的に隠すソフトがあるけど スプライトの表示制限をかけないと 本来隠れるはずのキャラクタが表示される。 この様うな表示制限のない エミュレータのソフトがありましたよね
はい。
やまほどある
447 :
名前は開発中のものです。 :2006/07/03(月) 11:31:08 ID:UWupiyjp
448 :
名前は開発中のものです。 :2006/07/03(月) 14:44:36 ID:ZWzBmtjk
ファイナルファンタジー3のノーチラス号の動きはインド人プログラマーの腕が良かったから 出来た物らしいのですが 具体的に彼の何が優れていたのでしょうか? 彼の技術を解説してるようなサイトとかってありませんかね?
インド人でしたっけ? 自分は6502界で三本の指に入るとか聞いたこと有る。 たぶんAppleIIの開発で活躍していた人なのではと予想。 関係有るかわからないけどインドでは九九の桁数がすごく多いとか。 子供の頃から計算に慣れ親しんでいるから優秀なのかも。
>>449 インド人は頭いい上に柔軟だからユダヤ人に代わって世界の覇権を握るかも
0を発見した国だから侮れない。
ノーチラス号ってなんか特別な動きしたっけ? 海に潜るくらいしか覚えてないや
俺は高速移動が印象に残ってる 確か沙羅曼蛇の高速スクロール面で画面上端がかなり乱れてたような気がするが、 FCで全方向高速スクロールって難しかったりするのかな?
斜め視点だったっけ?そのせいで難しいのかな いんどじんは優秀という噂が耐えんが、それが事実かどうかは置いといて 一日に何度もお祈りの時間が必要だったり、残業しないし工程遅れても気にしないしで 使うのは大変という話を聞いた(本国に丸投げした時の話で来日してる人がどうかは知らん)
FFのナーシャ・ジベリはイラン人だろ。 インド人てww
アクションゲームを作るときに、マップを2次元配列にして作ってたけど、 傾斜(坂道)の判定ってどうやってんだろう。 特に、マリオ3の1-5の最初みたいな単純曲線じゃない傾斜の接触判定が気になる。
457 :
456 :2006/07/17(月) 14:48:47 ID:2+xKwttP
ゴメン。 ○ 単純な直線じゃない × 単純曲線じゃない
マリオ3の1-5も単純な直線だぞ □□□■ □□■■ □■■■ ■■■■ □□□□ □□■■ □□□□ ■■■■ □□■■ ■■■■ ■■■■ ■■■■ □□□□ □□□□ □■■■ □□□□ □□■■ ■■■■ □□□■ ■■■■ ■■■■ ■■■■ ■■■■ ■■■■ これの組み合わせ
>>458 ありがとうございます。
自分はスプライトの大きさ単位で二次元配列を作って、
キャラクターと地面の接触判定をしてましたが、
その方式だと、キャラが着地するY軸の判定が複雑そうですね。
勉強になりました。
460 :
名前は開発中のものです。 :2006/07/29(土) 11:52:45 ID:TnfUogGB
あ
461 :
名前は開発中のものです。 :2006/07/30(日) 23:15:05 ID:0n8cP7Im
>>448 ナーシャ・ジベリだろ?
たしかイラン人だったはず。
ただでさえ他人のアセンブリソースは解読が大変なのに、 天才の書く、処理速度を求めたコードは理解できなさそう。
俺もインドだと記憶していたが
「ボスを倒した直後にセレクトボタンを押すとフリーズする」 「アイテム無限増殖」 て、別に芸術的なバグじゃなくね?
自作ロム(ハックじゃなく)作るにあたって、どこかいい解説ページないですかね?
このスレをttpで検索
NESのアセンブラ覚えればSNESにもすぐ対応できる? 逆の方がいいかな?
470 :
名前は開発中のものです。 :2006/08/30(水) 09:10:55 ID:ibWAhtSE
SNESなんて中途半端なハード魅力あるか?
両方に対応する必要があるのかと 本当にやりたい方をやれ 勉強がしたいんなら様々なCPUの数々のアセンブラを試せ
いや、対応できるのか?と聞いてるんだけど。
469には無理 以上
>>469 対応できない。
当時、ファミコン開発者がスーファミを開発するには
相当敷居が高い、と何度も言われた。
何もかもが違う上にスーファミには癖があるので
ファミコンの知識を忘れて一から覚え直さないといけない。
何にせよ、プログラムは新しい技術が出るたびに勉強し直しだ。
65816の方はあんまり作製したことないけど、 6502に慣れてれば、一から勉強し直しってほどでも無くね? 確かに癖はあるけどね。
CPUが違えば一からと変わらんだろう アセンブラが変わればそれも勉強し直しだし プログラミングに関しては蓄積されるものはあるだろうけど、「6502に慣れてれば〜」てことはない
というよりハードが違うんじゃないか?
>>474 がいうように
65816って6502と互換なんじゃないのか?
>>477 >CPUが違えば一からと変わらんだろう
6502でやってた後、65816へ写るのと、他のCPUへ移行するののどちらが簡単かという比較はよく解らない。
でも、マイコン初めての状態から6502をやるのと比べたら、6502から65816への移行は勉強というような大それたことは必要ないのじゃないか。
ニーモニックだって全く違うCPUでも似たような名付け方、バンク切り替え、レジスタアクセスやDMAなんかもソフト屋的なプログラマは普通やらないから、
一度6502やったことがあるのは全然違ってくると思う。
481 :
480 :2006/09/23(土) 17:04:44 ID:rkSGTpyM
もっとも、他のCPUから65816への移行の場合でも同じことが言えるだろうし、「6502に慣れてれば〜」とは言えないか。
すずめ愛好会でざっと見たところ、65816は アドレス空間が16ビットから24ビット アドレッシングモード追加 割り込み追加 命令追加(乗除算・ブロック転送・コプロ命令) が違いに見える。 よく考えると65816が癖があるとかより、ppuが別物だからってことかな。
>>483 >ていうか>469はアセンブラについて尋ねてたんだったな
ん?そういうのは関係ないよ。
解らない
>>483 を一から勉強し直してこいな。
微妙なトスが上がったようで
互換というより6502をエミュレートしてるんだっけ。
487 :
名前は開発中のものです。 :2006/10/03(火) 20:44:01 ID:QoUwVuVK
>>483 アセンブラの話なおさら簡単すぎ、アセンブラはアーキテクチャの違いを吸収する道具なんだから勉強しなおしで大変なんて言ってるアホは死んだ方がまし
カートリッジ依存とされるvramミラー方式についてですが、 カートリッジのVRAM A10入力(18番ピン)へ、 PPUのアドレスA10を接続した場合→垂直ミラー PPUのアドレスA11を接続した場合→水平ミラー ということだと理解したのですがこれで良いんですよね? あとさらに調べてみて解ったのですが、 ppuからの本体vramの使用権限もカートリッジに握られてるんですね。 /A13(48番ピン)をVRAM_/CS(48番ピン)へ接続するのが標準的な使い方(たぶん)だけど、 たとえば画面をミラーなし4面構成にした時に本体vramを使わないことも可能なようですが違いますか?
配線内容は分からんけど、アフターバーナーはVRAM使わず、ROMにつないでる。 力業で、背景回転させてるんやろな。
>>488 >たとえば画面をミラーなし4面構成にした時に本体vramを使わないことも可能なようですが違いますか?
MMC5がそうかも??
アセンブラの基礎的な知識はある程度応用が利くが (といっても他ハードに比べて65C816は嫌がられていたので とっつきにくいところも多かったのだろう)、 なにより新ハードの性能の理解が大変。 「こういうことをさせたい、ならどう書けばいいか」という部分。 ファミコンとスーファミは、全く違う機械。
>>488 細かいとこまで添削してないけど、そんなんであってる。
誰でもいいから携帯から連続書き込みの仕方教えて。頼む!
スレ違い
496 :
名前は開発中のものです。 :2006/10/20(金) 23:25:52 ID:ITiE4Jy3
ファミコンのエミュレータを1から新しく作ろうと思っているんですが、 Nesファイルをバイナリエディタで開いた場合、どのアドレスに スプライトとBGデータ・プログラムデータが格納されているのを知ることができますか? すずめ愛好会見ても、ファミコンの事しか書いてなくて、nesファイルに関する情報は ありませんでした。なので、困っています。
イミフ バイナリの冒頭何バイト目までがデータのインデックスになってるとか そんなのを求めてるということか
498 :
496 :2006/10/20(金) 23:42:59 ID:ITiE4Jy3
そうです。お願いします。
+--------+------+------------------------------------------------------+ | Offset |サイズ| 内容 | +--------+------+------------------------------------------------------+ | 0 | 3 | 'NES' | | 3 | 1 | $1A (Control-Z) | | 4 | 1 | 16K PRG-ROMバンクの数 | | 5 | 1 | 8K CHR-RAMバンクの数 | | 6 | 1 | ROM制御バイト #1 | | | | %00000000 | | | | +-++|||+- 0=水平ミラーリング | | | | | ||| 1=垂直ミラーリング | | | | | ||+-- 1=WRAM located at $6000-7FFF | | | | | |+--- 1=512-byte trainer present | | | | | +---- 1=Four-screen VRAM layout | | | | | | | | | +------ iNES Mapper番号 (下位4ビット) | | 7 | 1 | ROM制御バイト #2 | | | | %00000000 | | | | +-++ | | | | +------ iNES Mapper番号 (上位4ビット) | | | | | | 8-15 | 9 | [Reserved for expansion, should be 0] | | 16-.. | | PRG-ROMバンク (in ascending order). A trainer pre- | | | | cedes the firstバンク, if a trainer exists. | | ..-EOF | | CHR-RAMバンク (in ascending order). | +--------+------+------------------------------------------------------+
検索も満足に出来ないのに何かを作ろうとする輩が多いよな
>>496 nesソフトによってまちまちです。
てか、emu作るならスプライトやBGのバイナリアドレスわからなくても、
CPUをまじめにエミュレートさせりゃAPUに信号出力してくれる。
>>503 CPUをまじめにエミュレートしても、iNESヘッダに関しては何にもできないぞ
506 :
496 :2006/10/25(水) 21:39:45 ID:+LE8/Z7F
>>499 >>500 >>501 >>503 さん
アドバイスありがとうございます。
資料を見てみたところ、以下の計算式でスプライト・BGデータ
の開始アドレスが求められそうです。
(PRG-ROMバンクの数)*16*1024+16
スーパーマリオ1の場合0x8010になります。
YY-CHRで確認しても、同じ結果になりました。
わざわざそんなこと報告しなくてもいいよ。。。 みんなが初めは通る道かもしれないが、スレと関係ないだろう? ここはファミコン用ソフトのプログラミングがメインのスレです。
画像のフォーマットを考えたりするのが楽しいな これだけじゃゲームにならんのはわかってるんだけど パレットアニメでかなり盛り上がったり
フォーマットってchrやsprじゃないの?
そういうデータとは別にどう表示するかっていう情報を入れたりしてるのね どの座標に何番のスプライトとかそういう情報
それはフォーマットじゃなくて配置とか呼ぶのでは。
んーこれじゃちょっと解りにくかったか 今度ソース上げるわ
>>506 これからエミュ作ろうという奴が
誰でも知ってる事報告すんなよw
教えて君ならお断りだ。
ソースまだ〜?
まだまだぁ
516 :
名前は開発中のものです。 :2006/10/29(日) 15:44:06 ID:SaiaPLAK
プログラミングの知識がまったくない完全な初心者なんですが、
私利目的でFC(nes)で起動するあるFCソフトの改良版を作りたいと思っています。
改良版っていっても、ベースはそのゲームの原型のままです。
新キャラを加えたり、そのキャラに関するイベントみたいなものを付け加えたり、会話内容や敵の能力などを多少変更するだけです。
で、どうせほぼ原型のままなので、そのゲームのプログラムをそのまま引用しようかと思うのですが、
そのゲームのプログラムをそのまま表示させるソフトみたいなものはありますか?
でプログラミングについて
http://gikofami.fc2web.com/を見たのですが 、プログラミングの仕方もプログラミングの流れもファミコンプログラムの仕組みもさっぱり意味がわかりませんでした。
バカでもわかるようなもっと初歩的なとこから書いてあるサイトとかありますか?
パソコンを窓から投げれば良いよ。
518 :
名前は開発中のものです。 :2006/10/29(日) 15:59:30 ID:tlGhtqC3
既存のロムの改造は0からゲーム作るより難しいぞ
ク ク || プ / ク ク || プ / ス ク ス _ | | │ //. ス ク ス _ | | │ // / ス ─ | | ッ // / ス ─ | | ッ // / _____ // / // . / l⌒l l⌒l \ )) ____ . / / ̄| ,=| |=、| ̄ヾ / ____ヽ / ̄/ ̄. ー'●ー'  ̄l ̄ | | /, −、, -、l )) | ̄l ̄ ̄ __ |.  ̄l ̄.| _| -| ,=|=、 || |. ̄| ̄ ̄ `Y⌒l__ ̄ノ ̄ (6. ー っ-´、} ヽ ヽ 人_( ヾ ヽ `Y⌒l_ノ >〓〓〓〓〓〓-イ /ヽ 人_( ヽ / / Θ ヽ| /  ̄ ̄ ̄ ヽ-イ
522 :
名前は開発中のものです。 :2006/10/30(月) 08:11:47 ID:CfH9ZniK
ファックロムは〜?
523 :
名前は開発中のものです。 :2006/10/30(月) 11:50:09 ID:PhLxa5xD
ファミコンソフトのプログラムを解析する方法はないんですか?
ファミコン 逆アセンブラ で検索しろ
カセットからソフトを吸い出せた奴なら こんなところで聞かないと思う。 つまりそいつは犯罪者だ!
526 :
名前は開発中のものです。 :2006/10/31(火) 04:39:46 ID:97yyAMOA
フリーで1000Kとか大容量を逆アセンブルできるツールないんですか? どれもシェアで、フリーでも64Kとか32Kまでとかそういうのばっかりです
ファイルを64kに分割…いやなんでもない
528 :
名前は開発中のものです。 :2006/11/02(木) 00:45:43 ID:UaN0Jw6G
>>523 たかが6502の16進数対応コード表ぐらい丸暗記
しろよ、バイナリエディタで16進ダンプリスト
を直接読めよ、このドアホーン
相対アドレスはバイナリエディタじゃつらいだろ…常識的に考えて…
6502の16進数対応コード表 そんなのあるのか?詳しく
google or die
詳しく
>>530 そんなのも知らないとかゴミ過ぎw
なにしにこの板来てんだよ。
535 :
名前は開発中のものです。 :2006/12/10(日) 02:42:17 ID:Si8fH03k
\___________/ ∨ ___ _ / ____ヽ /  ̄  ̄ \ | | /, −、, -、l /、 ヽ | _| -|○ | ○|| |・ |―-、 | , ―-、 (6 _ー っ-´、} q -´ 二 ヽ | | -⊂) \ ヽ_  ̄ ̄ノノ ノ_ ー | | | ̄ ̄|/ (_ ∪ ̄ / 、 \ \. ̄` | / ヽ ` ,.|  ̄ | | O===== | `− ´ | | _| / |
おまいら反応早すぎwww
16進数でバイナリから書けるやついるのかよ
a9 ロードアキュムレーター 8d ストア 4c ジャンプ 60 rts 位は記憶してる。
BRK
8086なら16進でいける。
いかなくていいです 意味無いし
CPUクロックをどの程度消費しているか表示してくれるエミュはありますか? フレーム単位のログが採れれば最高なのですが、レベルメーター風でも構いません。 処理速度的にボトルネックになっている部分を発見したいと思っています。 よろしくお願いします。
消費なんて、常に一定だよ。
プログラム側でなんとかしろよな VBLANK待ちの間カウンタ回しておくとか 処理と処理の間にパレット書き換えておくとか
>544 エミュ側で出来るに超したことはないと思うのですが。 暫定的にカウンタ回してやってみます。 ありがとうございました。
背景の色ってどーやって決まるの?
書き込んだパレットの色で決まる っていうか質問が曖昧すぎて答えようがない
548 :
名前は開発中のものです。 :2007/01/08(月) 22:58:08 ID:f6u5oKtI
ドメインの契約期限切れだな。
550 :
名前は開発中のものです。 :2007/01/09(火) 05:27:31 ID:vloGOJp/
ネットアーカイブまで情報削除ということは サイト主から要請があったってこと?
アーカイブは見れるよ? 抜けてるページがあるけどね
553 :
511 :2007/01/10(水) 15:06:36 ID:Mt2U8F0d
ほんとだ。たまたま二、三個開いたのが消えてただけでした。 May 24, 2003とかありました。
>>548 ドメイン期限切れかつ、ドメイン屋に持ってかれた模様。
この手のサイトはローカルに保存してるから大丈夫だけど 国内の情報サイトが減るのは悲しいのぉ
558 :
名前は開発中のものです。 :2007/01/17(水) 03:44:15 ID:5WtFBIfD
とりあえずブックマーク
パソファミ以外のフリー&オープンソースの吸出しソフト作って欲しい
ヴァーチャルコンソールでテストできたらなあ
すずめの旧ドメイン復活してんね
563 :
名前は開発中のものです。 :2007/01/20(土) 05:27:11 ID:8chVlppz
復活させるんなら掲示板の荒らしどうにか汁
ファミコンのパレットってどんな色使えたっけ? 詳細のってるサイトある?
おまいらyy-chr使わんの?
>>564 G-NES, VirtuaNES使えよ
デバッガとかパレット表示機能あるだろが
エキサイトバイクは、標準52色以外の灰色を使っている。
570 :
名前は開発中のものです。 :2007/01/24(水) 12:55:49 ID:lJqeZS5D
どうやって?
またVIRTUANES信者のパレット論争がはじまったかw
けっきょく南極でも使ってたぞ>標準以外
標準52色ってのもちょっとおかしい。52+黒(0F)の53色なら分かる。
20と30はまったくと言って良いほど変わらないので、
こっちをカウントしないって事だろうか?
ちなみに2D、3Dには灰色が入ってるが、ファミコンタイトラーなどは
赤が入ってる。だから、そこを使ってるゲームは赤で表示される。
上で書いたけっきょく南極のBGの模様なんかで分かるはず。
ちなみに自分の行った専門学校では使用禁止色と習った。
ViruaNESも俺のパレットを元に灰色とかを弄っただけらしいので、
議論してもあんま意味ないかも知れんぞ。
現在、作成中のパレットを貼ってみる
http://www.geocities.jp/hlc6502//hlc6502/trash/NewFamiV.lzh あと微調整だけなんだが、そこで面倒になって放置中
今まで公開されてるパレットより良い…予定。
ちゃんと2D、3Dも実機に合わせて作った<昔は作れなかった
>>573 >ファミコンタイトラーなどは赤が入ってる
まじですか!
私、ファミコンタイトラー持っているので試したいです。
けっきょく南極のどのへんにグレー(赤)が使われていますか?
エキサイトバイクとともにで教えて下さい。
ファミコンタイトラー以外はなんでしょうか?
C1?ツインファミコン?シャープ系ですかね?
575 :
名前は開発中のものです。 :2007/02/12(月) 19:45:46 ID:g9GJV/Xz
ファミコンの専門学校なんてあるの?
>572 そんなに詳しいのにプログラムできないのか? 俺もソーサリアンやったことがあれば参加するんだけどな
13番の黒は、14番や15番などの黒よりさらに黒いよ。
NTSCにいわゆるBLACKER than BLACKだな
582 :
572 :2007/02/27(火) 01:35:04 ID:IsYBdRiW
>>574 タイトラーで赤いのは確認済み。ただ、けっきょく南極はin1で試したのでなんとも。
もちろん実ROMも持ってますが実家のどっかなので完全に確認したわけじゃありません。
持ってるなら「まず試せ」としか。スタートしたしょっぱなから面の横の模様に使われてます。
エキサイトバイクは知りません。タイトラーをセッティングするのが面倒…。
コレも5面までしかないわけで「試せ」としか。
C1でも赤くなるって聞いたけど真実は知りません。
>>579 のもホントかなぁ?
カンシオなんて書いてあるけど、答えてるのは俺じゃありません。C1持って無いし。
ネットの情報が真実ばかりなら良いのだが、どうにも疑わしくて…。
>>575 自分の出た専門学校(実際には1年制だし正式な専門学校じゃないけど)では、
卒業までに一本それなりに動くファミコンソフトを作るのが課題でした。
ただ、X68000上で動く音無しのマッパー0のエミュレータでの動作でしたけどね。
>>580 も書いてますが、HALでも教えてた時期があるようです。今は知りません。
マシン語直結だし、規模も小さく、教える(覚える)には悪い環境じゃない気がします。
>>576 どうにも苦手です。ほとんど出来ないと思ってくれた方が幸いかと。
さわり部分で数回挫折してます。572で書いてるのはグラフィック的な知識なので…。
でも、プログラマー的な考え方?みたいのは出来るらしく、グラフィッカーと
プログラマーの橋渡し的な役割は良く仕事でこなしてました。
>>577 13番の黒って何?14番15番ってのも何の事だかサッパリ…。
>>581 とりあえず書いといた。
最近、忙しいのでこのくらいで…。つ〜か、もう寝ないと死ねる。
パレット番号0dの黒は、0eや0fなどの黒よりさらに黒いよ。 (数字は16進数)
10進かよ(^^; とりあえず自分の環境では違いは分からなかった。>0D
>>565 mondoの情報があったのか。見逃してた。
586 :
名前は開発中のものです。 :2007/04/12(木) 14:18:02 ID:kHH10YX8
587 :
名前は開発中のものです。 :2007/04/13(金) 23:38:20 ID:LGhrsc48
すずめが閉鎖しているようなのですが…
588 :
名前は開発中のものです。 :2007/04/14(土) 06:56:09 ID:oT/ypf13
>>586 なかなかよく出来てるじゃない。
音がもろファミコンでいいね。
ドラムのリズムマシーンっぽいのは音変えてほしいけど。
で、それだけにどれだけ費やしたわけ?
2年ですか?
>586 前見たときより進んでる 続けてたんだ
>>586 本編は適当なジャンケンゲームの糞ゲーという脳内設定でお茶吹いて満足した
>>586 ファミコンだけで、このような高レベルな作品ができるのでしょうか?
音は確かにPSG3重和音に1ノイズだと思うのですが。
風景部分のパレットアニメ?や、歩くシーンのキャラクタ単位のカクカク感、
とか、納得がいくのですが…
しかし
人物の絵は本当にファミコンだけの機能で表示されてるんですか?
画の大きさ、色数信じられないのですが;
592 :
名前は開発中のものです。 :2007/04/15(日) 16:49:31 ID:33CFcuEY
クレーンゲームの景品にファミコン互換器(W がある御時世。 普及率では5、6位ぐらいにいるかも? ファミコンSDカードカセットとか同人ハードで出せば… 2GBの大容量で、凾oCM? 使ってー 喋るわ、歌うわ〜 アニメしまくるわ ファミコンがァ(爆 だたら面白いのにナ…
>>593 間違ってるぞ。
3*4+3*4+1だよ。
一画面単位なら全色使えると思うが
いいですねぇ
>>591 実際にROM公開されてるからエミュで動かしてみろよ
600 :
名前は開発中のものです。 :2007/04/23(月) 18:22:05 ID:LHJ890Bj
いまさらだけど、sramのチップセレクトがカートリッジコネクタ経由してたら面白かったのにな ゼロページとかスタック領域をカートリッジのコントローラでバンク切り替えできる 問題は出力のためのピンだがVCCピン2箇所もいらんだろうからそれ使う
601 :
名前は開発中のものです。 :2007/04/24(火) 20:33:25 ID:MGesXdjd
むむきち逃げるな このスレもメチャクチャにしてやろうか
602 :
名前は開発中のものです。 :2007/04/24(火) 20:34:26 ID:MGesXdjd
mumukichiがいる証拠 ■ おすすめ2ちゃんねる 開発中。。。 by FOX ★ 愉快堂からヒューメイアレジストリへ強制移管 [レンタル鯖]
603 :
名前は開発中のものです。 :2007/04/24(火) 20:38:08 ID:MGesXdjd
絶対に許さないからな
>>600 確かに面白そう
でもどんなゲームにつかえばいいか思いつかない
頭が今のマシンスペックに慣れきっている
すずめマジで閉鎖?
606 :
北赤羽 :2007/05/04(金) 20:14:52 ID:I/Dyejyl
イオナズン
なんか面白いことしてる人いない?たとえば >Vine Linux Thread 其の49 [Linux] LINUXとファミコンで何してるの?
サンプルプログラムとか見てて思うんだけど 皆さん文字フォントのグラフィック作るの上手いね オレが作ると どうしても幸薄そうなフォントになってしまう チラシの裏でゴメンね
どうせRPGとかのロムからパクってんだよ
幸薄そうなフォント…どんなのか見てみたいw
別のロダにして欲しい。 いちいち登録なんかしてられぬ。
エミュではちゃんと動いて歌も再生されてるみたいだが、 実機で動かせる代物なのか?
ロムイメージをカセットにできる個人はそんなに多くないと思う
>>611 直ッベお願いします〜
携帯なので動画変換サイトで観たいので…
互換FC用にUSBメモリかMCだっけ? のi/fカセットが欲しい
最近ファミコンソフトを作ろうと ギコ猫を見たり NESdevをみたりして 実験しはじめました そこで質問なのですが あらかじめ用意しておいた.nsfファイルを ゲームのBGMとして使用したい場合には どうやって再生させるのが良いのでしょうか?
>>617 電源オン時にinitアドレスを走らせて、その後一フレーム毎にPLAYアドレスを走らせればよいかと。
>>618 サンクス しかし未だ再生できず・・・
今日一日色々なページでアーキテクチャとかを調べて
自分の勉強不足っぷりにガッカリした
ギコ猫を参考にして とりあえずPONGみたいなゲームはできた
んで BGM〜 と思ってやり始めたんですが
nsfが8kbで プログラムROM領域も8kb 入らない!
バンク切り替えも いまいちしっかり理解できず・・・
もうちょい勉強してきます
ただ 618の書き込みで nsfの理解に早く近づけた ありがとう
長文スマソ
620 :
617 :2007/05/14(月) 15:46:32 ID:Moqj8QD1
4kbのnsfファイルを作って,無理やりプログラムROM領域に入れたら再生できました! ただ,nsfが$0000〜$07FFを何かに使っているみたいで,スプライトDMA転送の為に ギコ猫を参考に$0300〜を使うと,音楽に合わせて座標がずれたり,パレットが変わったりします とりあえず,DMA転送に使う所を$0700〜にして無理やり動かしましたが・・・. この辺のことに詳しい人いないですかね・・・.
>>621 $4011に生のPCMデータを連続でたたき込んでます.
データを書き込む間隔によって再生周波数が変わります.
>>622 YY-CHRだけだと背景作成が面倒だから、
自分で背景用のエディタを作ってる所なんだけど、
K氏も あの背景を作るときはYY-CHRっすか?
>617 既存のnsfじゃないとだめなのかな? どのサウンドドライバを選択するかはわからないけど 自分で曲のソース書いて組み込んだほうが早いと思う 色々融通もきくしね それはそれとして>618のやり方もすごく面白いと思った 自分ではやりたくないけどレポートは聞いてみたい >620 多分mckを使ったnsfだろうか ドライバのソースを見ればメモリのどこをどう使ってるか書いてあるよ メモリビューア見ながら照らし合わせてみるといい 使用している領域はおそらく256Byteを超えない範囲だと思うけどどうだろうか ゼロページも使ってるだろうからそっちも注意だね
>>623 YY-CHRとKZ-NESSAを併用してます
626 :
名前は開発中のものです。 :2007/05/21(月) 11:53:23 ID:nU7jpm2g
宣伝乙
627 :
名前は開発中のものです。 :2007/06/02(土) 23:37:27 ID:JeABNn4F
SUNSOFT 5Bを認めないVirtua信者
628 :
名前は開発中のものです。 :2007/06/03(日) 03:07:13 ID:me85IGc1
ファミコンのプログラミングって どうやってやるの?
ファミコンには50個程の命令があります。 それぞれ1〜3バイト(アドレッシングモードにより)で構成されます。 電卓を使ってアドレスを計算しながらバイナリエディタでコードを入力します。
630 :
名前は開発中のものです。 :2007/06/03(日) 03:56:44 ID:me85IGc1
CのNESライブラリって無いの?
>>630 開発環境に関しては このスレを読むなり
ググるなりすれば そこそこ出てくるよ
Cで開発してる人は少ないかもしれんけどね
プログラミングを全くしたことのない初心者が いきなりギコ猫見ても意味不明なんだろうな
なぜか初歩的な質問のほうが盛り上がるんだよな 検索すればわかるじゃんって言うような >632 コンピュータの動作原理なんかを解説してるページと併用すれば 他の言語よりはわかりやすいと思ったな ファミコンは制約が多いから狭くて覚えやすい
なんでファミコンで開発したいの? 意味あんの???
人の趣味なんて他人から見れば そんな物さ〜 オレはJavaしかやった事がなかった厨房だから、 このスレを見始めてからレジスタとかの仕組みを色々学べて 無駄じゃなかったと思ってるよ
誰かWikiでも作ってファミコンのアセンブラの解説でも書いてくれんかね
今更始めようって言うなら、解説なんていらねえぜ!くらいの気合が欲しいな 実際、やってる人はトライ&エラーで覚えていったわけでしょ? 現在出回ってる資料で十分だと思うけどなー
このスレの住人がwiki作ればいいじゃん。 てかこの手のスレって質問専門のスレにしかならないし、 まとめサイトを発祥させたほうが盛り上がる。
ていうか、ファミコンにアセンブラ機能なんてないし。 ファミコン向けアセンブラツールならあるけど。 やるんなら、ファミコン向けアセンブラツールの解説って事になるな。
>>640 >ていうか、ファミコンにアセンブラ機能なんてないし。
あるよ。おれ持ってるし。でもやらないよ。
もしかして実際に組んでるやつなんてこのスレに3人もいないんじゃないかと思い始めた俺だ
>>642 (((( ´,,_ゝ`)))) ププッ plpルッ
ADVPって使いものになる?
645 :
名前は開発中のものです。 :2007/06/07(木) 07:51:16 ID:bONeBvJe
うちじゃファミコンにGCC移植して使ってるよ?
だれかファミコン版Mr.Doを作って!Mr.Loでもええけど
こわっ しょーべん漏れた
650 :
642 :2007/06/08(金) 22:34:00 ID:Qygla5Jn
ソフトリセットすると面白いな
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < wikiまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
>651 リセット時にはスプライトRAMもクリアしないといけないんだな 勉強になった 画面出力もやってみるとなかなか楽しいもんだね >652 燃え尽きはやw MHPとかウィンドウの枠とか、使われてないのに入ってる画が泣かせる
655 :
名前は開発中のものです。 :2007/06/09(土) 08:38:26 ID:L8pPDZlc
>>652 NESファイル作った!?すげえええぇぇぇと思ってエミュで実行しましたが以下・・・
さいごかもしれないだろ?以下略
のメッセージョイ(背景青)と音楽のみで
スタートボタン等押してもそれ以上進みません ><;
これで終わりでしょうか? TT; 残念 ><;
>656 うん、簡単そうだったから今回はDMA使わずにやった 組み終わってから思ったんだけど、DMA使っても使わなくても手間はたいして変わらなかったな あとはBGを上手く使えるようになればなんかゲーム作れるかも
一番上と一番下のラインは文字表示しないほうがいいかも。 実機では切れちゃうんじゃない?
>>657 そうですか。
DMA使わないのって、実機でちゃんと動くのかな?
>>659 危惧してもROMに焼き込める機械なんて極小だからエミュで動けばおkじゃね?
・・・まぁ、中華あたりで売りたいとかの阿呆な事を思い立ったら話は別だが・・・。
>659 DMAってのはWRAMからスプライトRAMへ転送するだけだよね? スプライトRAMに直接書き込んだらまずいの? 初めてやったもんでわからないことばかりだから教えてもらえるとありがたい まともなゲームが作れたらROMに焼いて実機で試してみたいやね
662 :
652 :2007/06/10(日) 01:58:55 ID:4XPoWncY
>654 >655 メインのプログラム以外の部分を殆ど自作したら やたら大変で燃え尽きちゃったの サウンドドライバやらMMLをソースコードに埋め込めるようにする 変換ソフトやら・・・ またNESを作りたくなったら続きを作りたいです
663 :
パラノ :2007/06/10(日) 02:23:21 ID:c7H1eYCX
下の文字列Kから=までをbase64デコーダにかける(出力ファイル名はpara.lzh) 出来たlzhファイルを解凍→ファミコンromイメージ(ヘッダ付き)になる KgAtbGg1La4EAAAQAAEAc34wRCACgC1NBQAARHULAAFwYXJhLm5lcwAABNhz leA6Rpb/f93t69pe63tvHFeleQ0Co0kQbCMs6Qs67aUG2hEJEZBkVnYFSJgu EsXAG3iw4litJSMsgEYzjQ2Lthb9DADAIfMsJLUtGR3BcJcDhV2AQR0igkIj 3/uspaOOeQjmuAyMj4DvgH+w9Y5LZ28/a+hZKrbRHgdqnxkT0IU4/7Lqc+mv C56GmWrqdvIqnuToys+dXK4c6vVxZ0dXixkK+WnnzU828ZhSNGsFJMaQpLja dSzteQ0va0WmJnJaXmNtMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA/woi71d6jc3O1Rd/h+ULd629Rf9Tco3CbPbJ r9aFcq7uHwFLvqfSjaqauHbVlgrUydQ0rqmGrJDDXHuJTKzMZlZisYXXhML8 FRdjooz8OwhpDMele/HIn3mLIZvMKRS3mp01TPzPYUo7FFF2niahp3b4iGW0 f/RPxkZz3dbVZ/9TfidWlDe7jvTTdbjpd91GIozkKsuct6vchb7ePLPwnl08 yHOW/y81Dyu+UxIbLuUmjlKZXeg2icY2jkKYlYy+pw6xnK7T0ZuPw4jPVpeY 93YPrdRQx2139M8q/W0VOZpqNOVfYqtG6+CIzmY8EPOe7MFJ1TEsWk95sWm1 8ixavt7i5z36uYsFnQyM3XvadyK9HcceivuOZN9Q5rqtCK5kZte9DTkoc5/J cydezfX19vvToSnMiCEzW003ElpxyDaObfN/d6sbW4UR7ZJwzGW3BX0G3WMu I8s7KoRKERNrCe8duNK7m3qfnOb7t5PxrzOSY7DaydIE+JQ51rCmdZSijg0e DyM2ttYkzrVr9F7t42w7mwco1cX9zspOnDTi8G2tbJ37MuTAs/Je1LnJgrE6 ArwSXadBd6vzJLuVlyXqx1SgvQ5Ke9qvLNtPKt3PC1CZVk+Kqpvei8q7hULF yLBrs1d6HV2ooozIz2x5ldQjP12ZFbW5lc/XcSQ/Iznu3B4znOe07/OfiVcS ny/NnsQuzDnOSNfEoSG1ebFvObHxovr40fOY/Od71FHEW6TkTiLTvUmfJjL2 kflY6IeFg/auvhYNFdapRW4WC7Uo+ZdTCwfqX8hfvOR9Gi41vlazXM6uz8np 9/4u+j5/5/46ZMmb+Yx4Jmsnr47Xtej7ehPRpMzrPAs7b+Mn2cfrnxigeJLm y5s2bJtpc1EuXLTYc+ncU+emtXZ7PZp+smVe4FOngXso0nAAAAA/5b3VVb6E 7FqxUTNG/VWlMtYGhPgJmWV0cfGk2d3d4Cy3gv2mt+rpX8tlrf+Hr+BdXSy6 ewaXf7fw39SSansfi8vw/0o7GdP0Z7nzuB8PbsNLAYSvsrL6MzOLP9VpnSnZ 7Gy1l/ytZoTrp8MmWl5ttCeF7/Qw8PofLxdHI3aV+fxMAAAAAAAAAAAAAAAA AAAAAAAP9Ky7ibcZ8VhukI10reyqVkib6T/G++V1NVEUq3NKfn4H8e9BVrkL ItJRpyAAAAAAAAAAAAAAB/ZWXcTbjPisN1Vqtelf1Kpn0W3G1USFVsqU/PwP Fv+7BUr3vHWRaSjToAAAAAAAAAAAAAD+gAA= 既知の裏ワザ ゲームオーバーのあとで十字キーの↓とAボタンとスタートの同時押しでラーミア出現
>661 CPUが遅いから?かな。 表示のための転送はVBLANKの間に転送しなきゃならないから カウンタ計算して、値を判断して、条件分岐して・・・より DMAにパラメータ設定してイッパツで早い。 もしかしてDMAを設定するとCPUは他の作業が出来るのかな。 それともDMAがすむまで待ってるんだっけ・・・ VSYNC割り込みの間にサウンドの処理もしなきゃならない。 これが結構な重さなのです。 数ギガヘルツのマシンでエミュレートするのだから、 めいっぱい高速に処理してくれればいいのに、なぜかエミュは 実機なみの一メガヘルツちょいくらいの実行速度に抑えられている。 だから処理が間に合わないとゲームが処理オチするかも。
>662 なるほど 俺の場合はNSFから入ったからそうでもないけど あんまし好きじゃない部分を作るのは結構きついのかもしれないな >664 DMA転送してる間は512クロック食うとかどこかに書いてあった WRAMに書き込む→DMA転送 よりも スプライトRAMに直接書き込んだほうが速いことは速いはず でも普通はパラメータの取り回しが面倒だからWRAM使ってDMA転送するんだろうなと想像してる 今回は余計なことしなかったからDMAじゃなくてもいっかーという感じ >めいっぱい高速に処理してくれればいいのに 機能のひとつとしてあってもいいと思うけど、そんなことしたら正確にエミュレートできなくなるんじゃないかな?
>>661 市販のゲームで直接スプライトRAMに書いてるのを見かけた事がないので。
もしかしたらちゃんと動かないのかなと思ってみた。
でも、DMA転送前にアドレス指定を0を書き込んでリセットするらしい。
知識が無いんで良く分からん。 DMA転送って、CPU関係ないと思ってたんだけど、 適当にググったら 2クロック消費するとか書いてあった。 んで、2(クロック) × スプライトRAMの256(Byte) = 512クロック ってことでおk?
668 :
パラノ :2007/06/10(日) 11:23:12 ID:6MWMQSeI
ファミコンのCPU、rp2a03はチップのなかに6502互換のCPU本体とAPUと DMAモジュールが入っていてDMA期間中はDMAモジュールがバスを駆動し、 メモリーからロード→スプライトRAMへストア(2クロック)を256バイト繰り返す(合計512クロック) その間CPU本体は停止する、その意味でCPU関係ない、しかし停止する(動作はしない) ということだと思われる。
実際には数キャラ分のみ書き換えなんて事はしないし、 実機では、(値が変わらなくても)ある程度のサイクルで リフレッシュしなければならないので、 適当な時にRAMにアトリビュートを準備->VBLANK(NMI)直後に転送開始 とするのが普通。その後、BG処理->パッド処理->サウンド処理。 サウンドは描画期間に掛かっても構わない。<同期は取る必要あり 最近のエミュレータでは514クロックサイクルとしているのが多いみたいです。
rgb ppuの色の件 ・エキサイトバイクのグレーは未調査 ・バブルボブルのタイトル背景は「3F」を使用 ・けっきょく南極大冒険の雪山の影のグレーは「3D」を使用 ・RP2C03は「3F」も「3D」も「16」と同じ赤色になる ・シャープC1もRP2C03である NES Color Bars Demo V2 by Quietust (PD).nes をパソファミRAMカートリッジ(マッパー0)に書き込み RP2C03で動作させたら、「2D」「3D」は黒が表示。 原因不明! エキサイトバイクのグレー情報求む!
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < wikiまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
>670 パッド読み取り>計算>グラフィック、サウンド処理 じゃない?先に画面表示しちゃうのか?
676 :
名前は開発中のものです。 :2007/06/11(月) 22:22:20 ID:7jSMBBLP
677 :
名前は開発中のものです。 :2007/06/12(火) 00:56:08 ID:uKYW8z7Y
最後の5キャラ並んでるところは再現無理じゃね?
ちらつくだけで不可能じゃないだろ。 スプライトは64個まで表示できるし。
ちらついた時点で再現できてなくね? つーかこの話題つまんなくね?
>ちらついた時点で再現できてなくね? マジ意味わかんね
ちらついた方がそれっぽいw
・エキサイトバイクのTrack#5の背景の一部(道の点線)のグレーは「2D」を使用!RP2C03だと真っ黒です。 まとめ ・RP2C03で、「1D」「2D」「3D」は黒です。 ・バブルボブルが赤になるのはパレットとは関係ない気がします。なぜなら、パレットは黒だったから。PPUの回路に問題がありそう。
カの人の けっきょく南極の背景が赤になるというのはデマっぽいですね
マッパーすくない 高すぎ
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < wikiまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
死ねばいいのに
みんなマッパーになればいいのに
売り切れて買えなかった奴のひがみ
きょうこ
いっきに盛り下がったな
アセンブリの本なんか、(5年前とちがって)いくらでもあるのに、何故今更Wikiに期待するの?
しかもWikiのスペースを自分で用意する気も無いときたもんだ ゲーム作る程度なら本も要らんよな ファミコンのハード仕様が詳しく載ってる本なら欲しいけど
Cのコンパイラは無いん?
Cはおそらく使い物にならんよ。 スタックが小さいし。遅いし。 スーファミまでくらいはアセンブリでいかないと。
>>688 ☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < wiki開設まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
まじか、当時も汗んブラで開発してたのかな
お前ら話題がループしてるぞ
>>688 ☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < wiki開設まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
おーい、誰か久弥の行方を知らんか?
開発者3人は定期報告をしなさいfuck you all
704 :
名前は開発中のものです。 :2007/07/14(土) 23:12:10 ID:thBNpt+R
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < wikiまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
ファミコンのソフト作っても、結局はエミュレータでやるしかないんだよな・・・ もう少しマジコンとかが手に入りやすくなればいいのに
むしろ簡単に実行できるエミュは素晴らしい デバッグもしやすいし
EPROMとROMライタ買ってきて半田付けすれば実機でも出来ますよー
RAMカセット作って、書き込めばおk
>>707 より安いが、手間はもっとかかる。
そこまでして動かすのもあほらしい
えー そこが楽しいじゃん?
ナムコの初期のカセットはUV-EPROMだよ。あれ消して使えるんじゃ?
ライター高いよー
プ 貧乏人が
体感的には相当高いと思うぞw 使い道がねぇ
そこらへん分かりやすく解説してるサイトとか無いかな
確かどっかのサイトで回路図みたいなのを公開してた気がするけど
あれか
718 :
名前は開発中のものです。 :2007/08/18(土) 11:43:19 ID:wDnpe5N/
ニコニコ動画で申し訳ないっす
http://www.nicovideo.jp/watch/am512625 コメントでは酷評が圧倒的に多いけど
ゲームボーイカラーでここまで出来るってのがスゴイと思った
んで、技術的な疑問点っす
ゲームボーイカラーもファミコンもスペック的には近いと思ってるんだけど
奥行きを表現する上でキャラグラフィックの拡大縮小って
当然、1つのグラフィックを拡大縮小してるわけではなくて
各コマ分のグラフィックを用意して描画してるんでしょうか?
そりゃそうだろう わざわざアニメパターンを使い分けてるのは結構な労力だろうけど この出来じゃ中国のパチものレベル
ゲームボーイの方がファミコンよりスペックあるって、 前に見たような気がする。
CPUも違うし全くの別物だと思ってたが近いのか サウンド面ではGBのほうが洗練されててちょっと良いかな
>>718 そのGBは、ちゃんとポリゴンしてるんじゃないのかな。
してないにしても、計算で拡大縮小してるね。
しかしファミコンとなんの関係が・・・?
計算で拡大縮小なんて言ってる子は、 ファミコンとゲームボーイのスペックを勉強し直してきなさーい
ファミコンでも、パロディウスかなんかで、拡大する。
だから、別に大きいサイズのグラフィック用意してるだけだってば
nesasm使って、ファミコンのゲーム作ってるんだけど $2005いじってないのに、勝手にBGがスクロールするんだが この現象知ってる人いる?
VBLANK以外でなんかさわってない?
>>729 今の状況だと、VBlank割り込み時以外は、何も処理はしてない。
あと、気のせいかも知れないがX,Yレジスタを使用すると
BGズレが発生しやすく感じる。
$2006弄ってたらアウト
732 :
728 :2007/09/03(月) 14:14:38 ID:crfr0G/Z
画面が出るエミュと出ないエミュがある。
>>732 112行目に下のコードをはさんでみ
lda #$3F
sta $2006
lda #$00
sta $2006
sta $2006
sta $2006
↑は任天堂のゲームには入ってるかな。スクロール値をリセットするおまじないだ。
スクロール値って実はPPUアドレスそのものだから、$2006や$2007にアクセスすると、スクロール値が勝手に変っちゃう。
それを、VBLANK期間に VRAM転送が終わったら、VBLANK期間から出るより前にリセットする必要がある。
>>734 のコードでリセットした直後に、最初のスキャンラインの自分が求めているスクロール値を$2005に書き込むべし。
ヒントや詳細は、
The Skinny on NES Scrolling
NTSC 2C02 technical reference
らを読むべし。難しいから分らないなら読まなくてよし。
>>732 を読んでて、ぱっと見、明らかに悪いとこや勘違い?がある。今のうちに癖を直さないとそのうち、つまずく。
VirtuaNESでまともに動けばそこそこ安心と思うべし。動かないなら作法が悪い。
NMIルーチン入ったらVBLANK期間が終わらないうちに小規模なBG転送と、sta $4014のみに専念するべし。
VBLANK期間は短いので、NMIの直後は時間を無駄にしないこと。
⇒Main: が長すぎて、sta $4014がVBLANK期間内に終わらないんじゃないか?
動作しちゃうでしょうけど、あまり(・A・)イクナイ!!
NMIルーチン直後の定説は、まずSPRDMA、次にBG小転送。
VBlank: 内でBGの初期化(=大量転送)をやってる
⇒BGやSPRオフにしてさえいれば、BGの初期化はReset: 内でもok。
むしろBGやSPRの初期化は長くなりがちだからReset: でやるべき。
BG, SPR, NMIなどを再びオンにする前にVBLANKを待った方がいいかも。
jsr PadGetは⇒ 「スプライトとBGの表示をONにする」の直後に書くべき。
Main: 内の位置更新作業も同様に⇒ 「スプライトとBGの表示をONにする」の直後に書くべき。
.org $0600 sprdma: .db 0
⇒他のアセンブラならアリでしょうが、NESASMしょぼいから、.orgやたらにやらないほうがいいかも。
NESファイルに実体確保しちゃったりして、思わぬアドレスのズレやコンパイルミスが起こりうる。
RAM上の変数定義だけなら=や.equでいいんじゃないか。
736 :
728 :2007/09/04(火) 19:26:51 ID:QMg4xWo6
>>735 詳しい解説サンクス、なんせファミコンのプログラムは
初めてなんで、作法とか気にせずにガンガンに
コード書いててあんな感じでした。
助言を元に、コード書き直してみます、ありがとう。
>>732 もう一つ悪い所言い忘れた。
初期化せず参照してる変数がある。
例えば、主に画面更新フラグ F9。
ソフトリセット(リセットボタン)しても、メモリはオール0になるわけではない。
リセットする前の値のままだ。
エミュではハードリセット(電源スイッチ)すれば、大抵オール0になるけど、
実機じゃ不定と思うべき。
ソフトリセットとハードリセット両方を想定して変数の初期化に気配りしないと誤動作するおそれがある。
故意に区別したいなら初期化しない場合もあるけど。
738 :
728 :2007/09/08(土) 00:01:11 ID:gB8LjeiM
>>738 readme.txt に対してここでレスするのもなんだけど……。
ff7face.nes 作った者ですが、ソースの利用はご自由にどうぞ。
742 :
名前は開発中のものです。 :2007/09/17(月) 15:19:52 ID:zecFBltr
ファミコンだってロム側に拡張チップ持たせるとかでリアルタイム3D描画のゲームてのも可能じゃないの?
745 :
名前は開発中のものです。 :2007/09/18(火) 10:36:04 ID:VJXpuDd7
メガデモは…なんか、卑怯な気もするんだょネー 自分の得意なトコしか観せて無ヒみたいな; このスレかもしれないケド、 エロゲかなんかのOPを移植したムービの方が、 自分は興奮した;
うわっ馬鹿丸出し
>自分の得意なトコしか観せて無ヒみたいな; 極限まで良いトコの寄せ集め=それがデモだからw >エロゲかなんかのOPを移植したムービの方が、 >自分は興奮した; 違う意味で興奮してたんだよ。貴方は。w
メガデモ:これ作った人すげー! エロゲOP移植:これ作ったやつ馬鹿だろwww
ちょいと疑問に思ったんだけど、 マリオ3のアレ、動くオブジェクトってどうやったの? ファミコンってBGは一枚だけでしょ?
(年くってくるとやたらと代名詞増えるよな)
753 :
名前は開発中のものです。 :2007/09/24(月) 11:02:08 ID:n5oz9bKx
NESDEVどうなってる?
>>749 あれはスプライトと言うもので、64枚使える。
ゼルダの伝説の縦スクロールってどうなってんの?
>>756 やっぱりそうなのか
サンキューサンキュー
ドッカン
ドッカン
☆ゴガギーン
.______
. | | |
∩∩ | | | ∩∩
| | | | | | | | | | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ,,) | | | (・x・ )<おらっ!出てこい、
>>749 !!
/ つ━━"....ロ|ロ . | l |U \___________
〜( / | | |⊂_ |〜
し'∪ └──┴──┘ ∪
ゼルダの縦スクロールってどこのこと?
>>759 縦方向にマップ切り替える時も画面上部のエリアがそのまま残ってるからさ
どうなってんのかな?と思ったんだ
>>756 だとすると、ROM版はどうなるんだい?
762 :
名前は開発中のものです。 :2007/09/26(水) 21:32:09 ID:7MNB23As
ロム版は静止画になってたよ
763 :
756 :2007/09/26(水) 23:31:32 ID:TaMm3Csb
>>761 ROM版のマッパーであるMMC1にも実はH/Vミラーリング切り替え機能がついている
たしかMMC3にもついてる
ミラーリングのH/V切替はメジャーなマッパーにはほとんどついてるでしょ。 アドレス線線一本つなぎかえるだけなんだからな。 実装しない方がおかしい。
765 :
761 :2007/09/27(木) 02:45:58 ID:2fAlXZFD
回答ありがとう。 でも、、、君たちの言っている言葉の意味が分からない。 このスレ読んでると何となく楽しいから興味本位で聞いてみただけなんだ。 ごめんね、、、そしてありがとう。
ゼルダのスクロールがどんなだったかは覚えてないが、 ミラーリングじゃなくて、IRQの話なんじゃないの?
767 :
759 :2007/09/27(木) 16:35:32 ID:jXU565hn
>>760 サンクス。
>縦方向にマップ切り替える時も画面上部のエリアがそのまま残って
町とかダンジョンのように水平スクロールの場面からフィールドに出たときのことか。
ミラーリング切り替えた後フィールドじゃ画面外の部分を1/4位は書き換えてないので残ってるようだね。
>>760 の疑問自体は
>>766 のいうIRQもしくは0番スプライトを使った
BG描画位置を途中で切り替えるテクニックで実現している
H/V切り替えは
>>760 の疑問には直接的な関係はまったくないです
ただゼルダはマップ切り替え時に切り替え先のマップを全部描画してから
スクロールするというあまり見かけない手順を踏んでいるのでH/V切り替えが必要になる
なので方法を変えればH/V切り替えがなくても縦スクロール自体は実現できるはずです
>>767 それはリンクの冒険じゃないかな?
なるほど 垂直/水平ミラーどちらを選んでも、縦横両方のラスタースクロールは可能なのか 勉強になるなあ
771 :
759 :2007/09/28(金) 15:57:39 ID:8fypBKhz
>>769 >それはリンクの冒険じゃないかな?
すいません。リンクの冒険でした。
ゼルダの伝説とリンクの冒険は別物だったのか。
リンクの冒険はゼルダの伝説の副題かと思ってた。
BGの書き込みでちらつきが出るのは、いっきに書き込み過ぎて処理が間に合ってないってことなのかな? 勝手にスクロールしたりするし、よくわからんなー
>>773 おお、ごめん
このスレずっと読んでたはずなのに
>>735 はスルーしてたわ
BGは少しずつ転送するものなのね
初代ゼルダのフィールドの画面切り替えの縦スクってドット単位だったかな? キャラ単位で直接書き換えてなかったっけ。8ドットスクロールしてる。 横スクロールと、オープニング・アイテム画面への切り替え、の縦スクロールはドット単位だけど。 アイテム画面は、縦方向なら、スクロール時に画面外でBGを逐一書き換えれば見掛け上、残っているように見せることは可能だし。 初代ゼルダはさておいて、 両方向ともスクロールする場合、固定画面のゲージは画面の下に持って行ってるソフトが多かったかな。 水平ミラーにして、ゲージは縦スクロールの都度にBG内を逃げ回ってるのかな。 画面の横端はスクロールの書き換えで、ちらついてるし。
そういえばグラIIはボス戦でゲージが消えてたな。
virtualnesで見たらゼルダは切り替えてる。
ほしゆ
アセンブラの勉強もかねて、 ファミコンソフト開発をやろうかなとか思いました。
6502のアセンブラ覚えてもほとんど役立たないとは思うけど 面白いとは思うので頑張ってください
とりあえず、ギコ猫します。
>>780 ありがとうございます。
いつも、Cとかのメモリ周りの処理でうなされるので
アセンブラで簡単なアルゴリズムとか理解できるようになれば、
今後の助けにもなるかなぁとかな感じです。
スプライトのパレットが変わらなくて、 上下が左右が入れ替わると思ったら、 bit0-7の桁を逆に見てたorz
ファミリーベーシックのリファレンスってどっかにありませんか?
ヤフオク、ハードオフ
ギコ猫で勉強してるんだけど なぜかアセンブルするときセグメンテーションエラーが出る。 別のPCだと何ら問題なくできる。 VC++入れてるせいかな?
俺もVC++入ってるけどそのエラーは出たことないな NESASMのソース読んで確認してみたらどうかな?
1) exeファイル破損 2) HDD壊れてる 3) 64bit Windows 4) 気のせい どれかだと予想...
>>787-788 レスありがとうございます。
VC++は関係ないですか。
サイト上のソースを直接試してみてもダメでした。
ご指摘いただいた点も4)を除けば、問題ありませんです。
色々と検証してみたのですが、正常にアセンブルできるPCでは、コマンドプロンプトで
$ nesasm test.asm
と実行すると、コマンドプロンプト上の文字が一旦クリアされてから
Microsoft (R) KKCFUNC バージョン 1.10
Copyright (C) Microsoft Corp. 1991,1993. All rights reserved.
KKCFUNCが組み込まれました.
マイクロソフトかな漢字変換 バージョン 2.51
(C)Copyright Microsoft Corp. 1992-1993
NES Assembler (v2.0)
と表示されます。
しかしうまくいかない方のPCでは、文字がクリアされないまま
NES Assembler (v2.0)
Exiting due to signal SIGSEGV
…略
となってしまいます。
$ nesasm nofile.asm
と存在しないファイルを引数に実行すると、上記のようなKKCFUNC云々が表示され
その後、inputファイルが存在しない旨エラーが出ます。
色々調べてみたけどよくわかりませんでした。
コマンドプロンプトがおかしいような気がしないでもないんだが…
>>789 なんとなく、command.comで動かしてるんで無い?
cmd.exeで動かしたらどうなるだろ?
cmdでやってました。 command.comで試してみたけど、やはり同じエラー。 小出しになってしまい申し訳ないんですが、エラーは以下のようなものです。 NES Assembler (v2.0) Exiting due to signal SIGSEGV General Protection Fault at eip=00009a10 eax=fffd0000 ebx=00000000 ecx=000002af edx=fffd0000 esi=00004000 edi=0000000b ebp=002615cc esp=002615bc program=D:\NESASM\NESASM.EXE cs: sel=01a7 base=02af0000 limit=7d4fffff ds: sel=01af base=02af0000 limit=7d4fffff es: sel=01af base=02af0000 limit=7d4fffff fs: sel=017f base=0002eb10 limit=0000ffff gs: sel=01bf base=00000000 limit=7ffeffff ss: sel=01af base=02af0000 limit=7d4fffff Call frame traceback EIPs: 0x00009a10 0x0000998d 0x0000cc6c 0x0000a456 0x00004c7e 0x0000443d 0x000094fa
792 :
786 :2007/11/23(金) 01:35:01 ID:DgWJFham
連投すみません。
問題なくアセンブリできるPCで、command.comを試してみたら
>>791 と同じエラーが出ました。
ということはcmdがなぜかcommand.comになってしまう…ということだろうか…
OSがNESASMの実行を不許可にしているとか なんにせよ作る人が増えるのは嬉しいねー
795 :
786 :2007/11/23(金) 15:22:47 ID:DgWJFham
>>793-794 レスありがとうざいます。
WinXPsp2上で行っています。
Cygwinはインストしてるけど使ってませんw
そちらのサイトから落としたもので見事アセンブルできました。
こんなにあっさり動作してしまうとは…
なぜ今までのはダメだったかわかりません。
OSが実行を妨げてたということもあるんですかね〜
最近ゲームセンターCXってゲームで ファミコンゲームの良さを再確認したとこなんだけど、 アセンブラの開発効率を考えたら躊躇してしまう・・・ まあCぐらいならシャレになるけど、アセンブラだと・・・ Cのコンパイラはあるみたいだけど、調べても使い方が よくわからんし。そこらへんを詳しく解説してるサイトってない? 当時の開発者もCでやってたんじゃないのかな?
Cでまともに開発できるんならみんなやってますがな
>>769 普通のCは一時変数をスタックに入れるけど、ファミコンのスタックは正直使えない。
mov eax [esp - 4] みたいにスタックポインタを利用することができないから。
ファミコンのCはそこらへんどうなってるんだろう?どちらにしろファミコンでCは使えなさそう。
0ページインダイレクト利用するにきまってるだろ ちみは素人か
BRKの使いどころがわからない
BITも使いどころがわからない
>>796 Cコンパイラを使ってたのはごく一部(光栄だけかも?)位なもんですよ。
>>798 使い方さえ間違えなければ問題ないかと。
PCで使うような感じでは組めないだろうけどね。
>>801 あまり使われてないけど、よく使うルーチン(アドレス計算とか)を
少ないバイト数で呼び出すために使ったりとか。
Z80で言う所のRST xxHか。
>>802 bit7とbit6はAレジスタに無関係にオペランドのデータと比較するから、
データを工夫して、bit7とbit6に何かしらのフラグを詰め込んで判定に
使うとか…と思ったが、
LDA $??
BMI どこか
AND #$40
BNE どこか
でもあんまかわらんなw
あと参考になりそうなとこ。cc65とか使ったサンプルあるっぽ。
ttp://hp.vector.co.jp/authors/VA042397/nes/index.html
>>803 BRKは結局アドレスを指定しないで良いJSRみたいなもんか
BITは計算結果を後で二つのフラグに応じて加工したい場合に一応使えるかな
>>804 BRKはドラクエIIIあたりで多用されてたっぽい。
IRQも併用だとフラグ判別が面倒だけど。
BITで思い出したので追加
アキュムレータを破壊しないという利点がある。
ディスクシステムBIOSの割り込みルーチンで使われてたの思い出した。
>803-805 なるほど。 BITは即値が使えないんだよね。 AND取る時はいつも即値でやってるから使い道が無いように感じてたのかも。 BITに置き換えられる部分がないか、以前のソース見直してみる。
唐突ですけど、ファミコンでスプライトダブラをやってたソフトってありますか? まあやるにしても標準の2Kのメモリでは増やしたスプライトの情報を確保するのがそもそも無理そうですけど… コナミの後期ゲームではもしかしてやっていたんでしょうか?
多分無いと思うけど。
烈火とかグラIIをデバッガで見た感じだとNMI割り込みにつきDMA転送が一回だからやってなさそう Y軸に関してソートするのはファミコンじゃやっぱり無理か…メモリも少ないし MSXではやっていたのがあったらしいんですけどね
表示中にDMAしたら動かなくなった記憶があるw
シューティングならやりくり次第では、メモリに結構余裕があると思うよ。 1フレーム間に2回以上もDMA転送したことないから、 スプライトダブラが可能かどうかはわからないけど。
>>809 烈火でさえやってないのね。なら、国内はないだろう
可能性あるとしたら、海外ものか・・
グラ2はやってるって噂だったが、嘘か?
814 :
名前は開発中のものです。 :2007/12/31(月) 01:19:19 ID:kYbV1FFj
ギコファミで勉強中なんだが(第九章スプライトDMAまで理解できた) スプライトを移動させるときにマリオとかみたくアニメーションさせる方法を 教えてください。
>>814 スプライトDMAする内容を時間経過で変えていけばおk
816 :
814 :2007/12/31(月) 03:08:48 ID:kYbV1FFj
>>815 時間を取得する方法とは?
やはりゼロページに適当に変数作ってひたすらインクリメントしてオーバーフロー
を起こした時などのようにやるのでしょうか?
10章読みなさい 答えにたどり着けるはず
818 :
814 :2008/01/01(火) 04:52:01 ID:knyurTO2
自力で解決したZE★
ほら解決したろ。よかったな。 タイミングを計るには Vblank割り込みを使う 0番スプライトヒットをポーリングする 使った命令から総サイクル数を計算しておく の三つから好きなものを選べばいいわけだ。
領域の境界で消えまくりそう。処理がまにあえばいいけど・・ 画面を横に四つに切る、四つの領域(バッファ)を考えて そこへ32枚ずつ表示を考え、最大128枚の表示をめざす。 バッファに入らなかったスプライトは残念ながら表示されない。 表示するスプライトのうち、Y=0..59ドットのものはAのバッファへ。 60..119をB、120..179をC、180..239をDへ設定。 四つの領域である程度分割されたバケツソートの意味合いがある。 垂直回帰線割り込み終了までに四つの領域それぞれでYで ソートをすませておく 画面の0〜、60〜、120〜、180〜でラスター割り込みで、 それぞれ転送する いっぺんに32枚のDMA転送は間に合わないので、 ラスター割り込みを何度もかけて数バイトずつ転送していく。 Yでソートされているので、ラスターを何回か経過したとして もちらつくことは少ないと考えられる。 ※領域ごとに64枚の処理はどうせ間に合いっこないので 32枚で考えました。メモリの節約も考えています。 それにファミコンのスプライトは8枚ならんだら どのみちちらついてしまいます。 ※ファミコンの場合、ラスター割り込みではなく、 フラグを監視するのでしたっけ?知識があいまいです。
何の話?
スプライトタブラーだろ ゲームカセットにハード入れりゃいいのに
824 :
814 :2008/01/10(木) 17:03:00 ID:OjgtnRWb
またまた質問があるのですが、ファミコンで乱数を使う場合どのようにすればいいのでしょう? I/Oの0x400Eを使うっぽいと思うんですがだれか。
それ音声用だから値は取得できない 擬似乱数でググって好きなの使えや
826 :
814 :2008/01/11(金) 03:34:55 ID:R/XuHjLJ
自力で解決したZE★
827 :
名前は開発中のものです。 :2008/01/12(土) 21:07:38 ID:Te3dHOGv
すみません、ファミコンプログラムを新しく始めようと思ったのですが、 すずめもギコ猫も閉鎖のようで困っています。 どこかよい入門サイトはないでしょうか?
そうやって人にググらせて自分でググる手間を省く ググググ詐欺だから気をつけろよ
830 :
名前は開発中のものです。 :2008/01/13(日) 19:26:35 ID:C14nC1gP
電源を入れた一瞬だけBGが表示されてからすぐスプライトだけになってしまう のはなぜ?
MMC3のNESファイルのプログラムが始まるのって何バイト目なのでしょうか? 6502の情報はあってもNESファイル自体のフォーマットってみつからない...
ヘッダでぐぐれ
ありがとです。とりあえずプログラムの分割はうまく出来たんですが、 今度はどれが最初にロードされるかってのが分かんないままです。
あてずっぽで答えるけど リンクした順だと思うよ
最終バンクのベクタに書いてあるアドレスから始まるお
837 :
名前は開発中のものです。 :2008/01/19(土) 16:47:04 ID:/dJ7WQvQ
開始時に2回VBlankを待つ意味がわからない。
838 :
名前は開発中のものです。 :2008/01/19(土) 19:12:13 ID:sA5AMxJm
スレ違いかもしれませんが少々お聞きしたいことがあります。 当方ゲーム業界には全くの未経験なのですが、知り合いのゲーム狂の人から 聞いたのですが、ドットで絵を描く技術があればしばらくの間食いっぱぐれないと いっていたのは本当でしょうか?また絵心のない素人でも目指せるものなのでしょうか?
> 477 名前: 名前は開発中のものです。 投稿日: 2008/01/19(土) 18:44:02 ID:sA5AMxJm > スレ違いと思いますが、オンラインゲーム会社って潰れやすいのでしょうか? > ゲーム業界に入りたいのですが、GMとかカスタマーサポートとか未経験で募集している > 所を良く見かけるのですが、あまりお薦めの業種ではないのでしょうか? > 年収とかどの程度もらえるのでしょうか? > 宜しくお願いいたします。 > > 232 名前: 名前は開発中のものです。 投稿日: 2008/01/19(土) 19:01:48 ID:sA5AMxJm > スレ違いですが質問させてください。ゲームデバッガーが正社員で募集かけているのですが、 > 年俸300万ぐらいで・・。やはり先はないですか? 当方30歳で、 > 現在デスクワーク職を探しているのですが・・。前職は小売してました。 > > 175 名前: 名前は開発中のものです。 投稿日: 2008/01/19(土) 18:54:42 ID:sA5AMxJm > 質問させてください。ゲームデバッガーが正社員で募集かけているのですが、 > 年俸300万ぐらいで・・。やはり先はないですかねえ。当方30歳で、 > 現在デスクワーク職を探しているのですが・・ > > 838 名前: 名前は開発中のものです。 投稿日: 2008/01/19(土) 19:12:13 ID:sA5AMxJm > スレ違いかもしれませんが少々お聞きしたいことがあります。 > 当方ゲーム業界には全くの未経験なのですが、知り合いのゲーム狂の人から > 聞いたのですが、ドットで絵を描く技術があればしばらくの間食いっぱぐれないと > いっていたのは本当でしょうか?また絵心のない素人でも目指せるものなのでしょうか? > > 245 名前: 名前は開発中のものです。 投稿日: 2008/01/19(土) 19:14:07 ID:sA5AMxJm > スレ違いですが質問させてください。ゲームデバッガーが正社員で募集かけているのですが、 > 年俸300万ぐらいで・・。やはり先はないですか? 当方30歳で、 > 現在デスクワーク職を探しているのですが・・。前職は小売してました。 > こつこつ大好きです。
夢からさめなさーい
最近なんか作った?
843 :
名前は開発中のものです。 :2008/02/09(土) 21:37:45 ID:o+W6Qao2
ゲーム・ジェネレーションX 〜8BITの魂〜ていうDVDに ミスタースプラッシュのソース入ってる 糞高いけど買ってみた
846 :
名前は開発中のものです。 :2008/02/09(土) 22:16:40 ID:o+W6Qao2
847 :
名前は開発中のものです。 :2008/02/15(金) 22:31:58 ID:uGndRfzQ
NESファイルというのをいただいたんですが開くことができません どうすれば開くのでしょうか 教えてください
848 :
名前は開発中のものです。 :2008/02/15(金) 22:32:04 ID:36W2us5r
前にもカキコしたけど,VBLANKを2回待つメリットっていうか意味を教えて下さい. 任天堂のゲームは2回待っている模様
一回だけ待つとこうなる 待ってみるつもりが既にVBLANKだったぜラッキー! だがVBLANKの終了直前だったみたいで転送処理が全部おわんね
851 :
名前は開発中のものです。 :2008/02/16(土) 02:14:14 ID:VD5lPrwS
なるほどね,それじゃあやっぱり自分もこれからは2回まった方がいいね,癖にしておこう.
回答していただき,有難うございました.
>>849
852 :
名前は開発中のものです。 :2008/02/17(日) 17:25:34 ID:Vj+9qYk1
今スーパーマリオ1の逆汗テキスト読んでたんだが,気になる事が. NMI割り込みルーチン内でスプライトDMA転送するとき lda #$00 sta $4013 してたんだがこれって意味あんの?DMA利用ならしなくていい希ガス
853 :
名前は開発中のものです。 :2008/02/17(日) 17:29:07 ID:Vj+9qYk1
スマソ,もう1個聞きたかったんだが忘れてた NMI割り込みが起こったとき,自動的にインタラプトフラグがセットされるのなら わざわざ NMI: lda (PPUCTL1の値が入っている変数) and #$7F ; NMI禁止 ってしなくていいと思うんだが. 上のもそうだけど,やらんでもいいけど念のために一応ってことなのか?
もちつけ /\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( ∧_∧ (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ ) )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
VDP側がROMじゃなくてRAMになってるタイプで マッパーが普通の74LSとかで組んでるゲームがあったら教えて下さい アテナがそうらしいけど、高くて買えないので…
手持ちのボンバーキング開けてみたらそれだったので解決しました
857 :
名前は開発中のものです。 :2008/03/18(火) 04:01:08 ID:ftdzuL2t
日本のゲーム機なのに資料が少なすぎだろ・・・
ほんと 割り込み調べたら「ゼロ爆弾」だって。 遠回りしちゃった もうなんだかね ラスター割り込みをかけるのは不可能で ビットを調べるんですよね?
859 :
名前は開発中のものです。 :2008/03/22(土) 09:37:33 ID:zDal5JxT
>>858 MMCについて調べてみたら?
中には割り込みかけられるものが有るかもよ。
>>858 ラスター割り込みをかけるにはスプライトのヒット割り込みを使用するんだよ
>>860 みたいな間違った知識をひけらかす輩が減らないからこういう誤解が生まれるんだよな
どういう理屈で出来ると思ったのかには興味がある。
>>860 さん説明プリーズ。
0番のスプライトを透明にしておき 0番のスプライトがラインバッファに展開されるときに割り込みを掛ける 割り込みが掛かったらスクロールレジスタをいじる ギコ猫でもわかるファミコンプログラミングはレジスタの変化をポーリングで見ているので 処理としてみるとかなり無駄
透明じゃ爆発しないよ。 バッファーに展開されるだけじゃ、まだBGとヒットするか分からないよ。
866 :
名前は開発中のものです。 :2008/03/22(土) 16:48:12 ID:rSgVHWgR
そうかMMC3を使用しないでラスタースクロールをさせようとしているのか すまん今までののは忘れてくれ
MMC3でも
>>864 のようなことはできないと思うんだけど、どうだろう
ID:rSgVHWgRは割り込みがどういう物なのかすら良くわかっていないな
文章的には多重割り込みみたいな書き方になってしまってすまんが まあすべて忘れてくれ
多重割り込みってのでも話が全く違うw
正直理解出来なかったが、とりあえず説明乙。
?
大人の事情
一緒と言うか上位互換じゃなかったっけ
>>875 そう思った理由はなに?
俺の目には別物に見えるけど。
CPUに関しては互換だろ NESASMだってPCエンジン用のアセンブラのおまけみたいなもんなんだから
聞いた俺が馬鹿だった。 忘れてくれ。
?
オブラートに包んだ言い回しって難しいな。
つまりX68000のソフトは同じCPUのメガドライブや、ネオジオや、 初期のUNIXマシンや、Macの上でも動くわけですね!
>ファミコンとCPU一緒なんだよな ってのを受けて >上位互換じゃなかったっけ と書いたら、そりゃCPUが上位互換だと言ってると考えるのが普通じゃないか?w
>>881 移植だと言っているのにお前は何を
と釣られてやろう
そういう流れだったのか。 これは失敬。
移植とかいってマシン語やアセンブラ弄るつもりなのか? よほど変なCPUじゃないかぎり、 CPUメーカーからCコンパイラ供給されるからCPUの仕様の違いは吸収できる。 むしろVRAMやサウンド関係の仕様(特に容量)の違いがあるから、 そちらの方が移植の障害になる。 CPUが同じだから移植ができるとか仰る方は、、 知的に障害がございますようなので明日医者お行きなさい。 別に急患じゃないから決して救急車使わないでくださいね。 人様の迷惑になりますから。
というか何で移植の話になってるのか分からないんだけど、 873のドラクエって移植というよりエミュレートに近いんじゃないの? そりゃ音とか絵周りが違うのは手を加えないといけないけど
メガドラに勝手に移植したドラクエもあったな
885
は何が言いたいんだ?
ドラクエだといってるのにCとか
とりあえず
>>873 をよく読め
それにしてもいつも誰も居ないのに こうも人が来ると気味が悪い
890 :
名前は開発中のものです。 :2008/03/23(日) 18:13:44 ID:XAwxuj8j
>>873 MPUが全く別だからあまり楽とは言えないとおもわれ
MSXよりPCEのほうがスペック的に高い分だけは楽かもしれないが
音源は再現しきれてるのか?
892 :
名前は開発中のものです。 :2008/03/29(土) 12:10:03 ID:qWPgrjug
SMB1ではNMIがコールされるたびに lda #$00 sta $2005 sta $2005 としているがなぜこれで画面がスクロールするのかわかる人いたらおしえて
893 :
892 :2008/03/29(土) 12:15:53 ID:qWPgrjug
ごめん 今自己解決した
894 :
名前は開発中のものです。 :2008/03/30(日) 22:07:45 ID:AtognkZa
どうでもいい話だが873はNES版ドラクエであってPCエンジン版ではないと思う PCエンジンのNESエミュかCDロムロムの画面くっつけてるだけだ
一般的には全52色と認識されている 64色というのは6ビット使ってパレット番号を指定しているところからくる誤解だろう そのうちのBG13色(透明色含む)とスプライト12色を足した25色が同時に発色可能
MMC5を使用したファミリーベーシックが欲しかったな。 そういや32bitの入門向け開発機がどうのこうのと昔任天堂が言ってなかったけ?
たけ挑で時間を経過させると宝の地図が出てくるギミックってあるじゃないですか。 あのソフトは時計を内蔵してないと思うんですけども、 どういう原理なんですか?フレームを数えてるとか?
一般的な話、水晶乗ってるんだから時間計測くらい何とでも出来るだろ
Vblankは1/60sに一回起こる。つまりそういうことです。 というか実際のところどうなんだろうね。 どこまで1/60sに近い数字なんだろう。
NTSCなら60000/1001で59.94fps だからゲーム機上の60フレームは厳密には1秒では無い
ファミコンはNTSCじゃないから、59.94ではない。 事実、テレビにファミコン映像が少し混ざった場合、上から下へ(あるいは逆かも)流れるので、 59.94と一致はしていない。
そう言えばエミュで、迷宮組曲の連射測定機能を測ると、理論値より少し多く出るな。 なんでだろう。
>>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変数は便利だったのを思い出した。
(21477270/4) / (341*262)=60.098 だろ?
このスレの住人ってすげーな。
>>904 まあ正確な時計を作るわけでもないから
普通は60フレーム数えて1秒とすれば問題ないよなぁ
そもそもマリオなんかは秒計算じゃないし
こちらの板を見つけて、またFCプログラミングしたくなってきたので、 久々に挑戦してみようかなぁー バッ活はPart4からの購読で、実績は、Part6あたり(表紙がヘリ?)に チートコードが載ったり、FCキャラエディタ(確かPC88用)が載ったりしました。 (該当書籍持っている方、名前は晒さないでねw) 一度、クソゲーが遊べる程度まで作れたので、今度はそこそこ遊べる のを作ってみたいと思います。 ところで、アマチュアで人に見せられるの作った人いる?
>908 ノシ ゲームじゃないけどね
911 :
908 :2008/05/18(日) 01:15:35 ID:0NSQHV1d
ゲームに限らず、ちょっとしたプログラムでもFCだと制約が壁になりますからねぇ とりあえず、見てくれる人がいるようなので一安心。 一応、開発は進んでます。といっても、なかなか時間が取れず、 まだ動作検証段階ですが。。。音以外は何とかなりそうです。 スプライトとBGの表示の方法とパレットの関係を把握し、 必要最小限のキャラ(暫定)を作り終えた所。 作っているのは、よくあるパスルゲーで、個人的には割とハマって ますので、1回クリアするくらいは遊んでもらえるかと思われますw たまに顔出しますのでヨロロ
912 :
910 :2008/05/18(日) 19:28:47 ID:jycNLlW9
いいねえ 俺は逆に音以外がイマイチ BGMやらせてもらえないかなあ
913 :
908 :2008/05/20(火) 02:13:24 ID:PtJMgV5O
>>910 おぉ!音系やってもらえるととても助かりますっ!
基本的にはVBlank時のNMIで流しますので、1/60毎の実行に
なるかと思います。
音源ドライバとか作ったことないのでイマイチよく分かりませんが、
どこかのメモリーに曲番号書き込むとその音楽が演奏されて、
さらにどこかのメモリーに演奏状態(演奏中or停止中)などの
情報があるといいなー?なんて思ったりしてます。^^;
当方、音に関しては素人なので、ご自由にお願いします!
それと、操作時の効果音を入れたいので、どれかのチャンネル
は空けておいて下さい。w
テスト可能になりましたら、ROMイメージ&ソースを公開したい
と思います(6月上旬から中旬くらいまでは掛かるかなぁ)。
なお、開発は NESASM 、動作確認は VirtuaNES で行って
います。
914 :
910 :2008/05/21(水) 16:38:48 ID:/GIDkXml
>913 了解 じゃあテストしてみてからゲームに合わせて曲を作るよ。 BGMの再生はアキュムレータに曲番号をセットして 曲を読み込むルーチンを呼び出すだけだから簡単にできると思う。 演奏状態は今のところ確認できないけども、作ればすぐかな。 効果音は勝手にBGMをマスクして鳴らすように作ってあるんで、 チャンネルは空けておかなくていいかな? 開発はこっちもNESASMだから問題なさそうだね。 ではうpを待つ!
915 :
1 :2008/05/21(水) 22:03:33 ID:mKCmg2RZ
スレ立てからちょうど2年半で こんな展開になるなんて・・・オラわくわくしてきたぞ!
板名にふさわしい展開だな
外野ですが密かに期待してます
上の2人以外で作ってる人いない?
ドアドアって何でエミュでやると音がずれるんですか?
920 :
908 :2008/05/29(木) 23:52:42 ID:7I4XItfK
921 :
908 :2008/05/30(金) 00:03:59 ID:CuZ8TqGE
>914 スバラシイ!それでOKです! 割と楽に音出しできそうで助かります〜 チャンネルは空けなくてOKです。 うpったソースはかなり見辛くて恐縮です^^;
どなたか
>>919 が分かる方いらっしゃいませんでしょうか。
エミュという単語が引っかかりますでしょうか。
エミュでは再現できないような中村氏の高度なプログラムが
為されているのではないかと気になって仕方が無いのです。
923 :
910 :2008/06/04(水) 23:53:54 ID:kBD41vU9
924 :
名前は開発中のものです。 :2008/06/05(木) 18:46:55 ID:+uY5UfuO
私はいままでマッパー0ばかりでプログラム組んでたのですが、最近になって マッパーというものを勉強し始めました。いままでのマッパー0ならばNMI内でVRAM関係の処理を終えた後 ゲームの核の部分に飛んでいたんですが、それは他のマッパーでも変わらないのでしょうか。 MMC3やらMMC5やらで開発されている技術者様のソースを読んでみると、NMIルーチンの記述が短くて、 どこに中心となる部分を書いてるんかなあと思いました。
>>923 遊び方が分からない。
一部のエミュで表示が少し変になった。
アホはとことんアホなスレ
>>925 まだまだゲームになっていませんが、って書いてあるじゃん。
あと、どのエミュでどんなふうに変になったか書くと
908の参考になると思うぞ。
ファミコンのアセンブラとC言語ってどっちが難しいの
変わらんよ 理解だけならアセンブラかも でも構造化しにくくて結局Cの方がおkってなると思うですよ 手間の多さは圧倒的にアセンブラ 汎用性の無さも圧倒的にアセンブラ まあ考えれば当然の事ですがちょいと語ってみましたよではでは
930 :
名前は開発中のものです。 :2008/06/08(日) 13:38:58 ID:fP9Tn+ba
アセンブラはコンピュータ技術について高度な知識を持っていないと大変 C言語はパソコン初心者でも大丈夫 だからCのほうが簡単かもね
そだな、情報量の差も大きいですな 初心者向けのアセンブラ本も皆無じゃないけど、需要の差が歴然だし
アセンブラなんて このスレで初めて触ったわ バグ修正がかなりキツいけど(情報がほとんど無いし・・・) ファミコンソフト作ってると思うと楽しいもんだな
直接ハードを叩いている気分が味わえるところはいいかも>アセンブラ 昔の人はこれで開発して、徹底的にメモリを切りつめたんだなぁと 思うと感慨深い。 それと同時に、ファミコンって変なハードの作りをしているなぁと思う。
当時のコンピュータはとても高価ですから
DSも変な作りらしいけどな。 任天ハードって全部変なのかも
Sonyには敵わないんじゃねえか?w
動くプログラムを作るだけならCもアセンブラも言語を覚える手間は大して変わらんよ どっちの言語を使おうが結局ハードウェアの知識は必要だしね
命令が少ないアセンブラの方が簡単ではある
>>933 >ファミコンって変なハードの作りをしているなぁと思う。
カートリッジにプログラム用のROMとグラフィック用のROMが
別々のバスに繋がって載っているなんて、
他の家庭用ゲーム機では見られない作りだよなぁ。
そのおかげで、あの当時であの値段で他を圧倒する性能だったし、
その後数年生き延びられる発展性があったのだろうな。
6502覚えればSFCへノウハウ引き継げる?
ちょっとは引き継げる…らしい しかしSFCは、当時のFC開発者が「難しい」と 頭を抱えた代物らしい。
仕事で金貰いながら朝から晩までプログラム作ってるやつに
>>908 ヘリが表紙のバッ活って、俺も持ってた。
背表紙がボロボロに折れるまで読んでたなぁ。
たしか背景が緑基調の表紙だったよね。
陰ながら応援してますヨ
そういや6502ってPCEも採用してたんだよな 覚えればPCEゲーにも使えるか
ASMよりもハード固有の機能の方がムズイからなぁ
かと言って、今からPCEゲーを作るかといったら疑問かな あえてPCEを触る食指が動かないかも
PCEとファミコンってCPU同じだし速度も同じなのか
ゲームじゃないプログラムを組むならMSXとかの方が良さそうと思った こんにちは世界を表示するだけであんなに長くなるのはゲームに特化し過ぎ ちなみにMSXは良く知らない
MSXはBASICあるからなぁ 10 print("こんにちはせかい") run 10 こんな感じじゃなかったか。 printの前にSCREEN指定が必要だったかもだが
ファミコンと違って、画面一杯を使って絵を描けるのは利点だな>MSX ただし、MSX1だと横8ドットに2色というキツい制限があるが 漏れは6502よりZ80の方が扱いやすい。レジスタ2つくっつけて16ビットの足し引き計算が簡単にできるし ファミコンだと、BG256個以上のものを表示させようと思うと 特殊なことをしないとできないし、かなりの力業になる そのため、どうしてもチマチマした画面になる それが利点でもあり、欠点でもある仕様だな。一概にMSXをバカにはできない
>>951 BG(外字)の表示が速いから
巨大ボスとか巨大キャラ出しまくりだったね
グラディウス系とかR-TYPEとか
msxってまともにスクロールするゲームってあんの?
ずれるエミュを教えてくれ。
ありがとうございます。言われて改めてチェックしたのですが、 nnnesterJではズレズレで、virtuanesではズレは発生しませんでした。 という事はエミュの問題か……。 それにしてもドアドアだけ(全ROM調べたわけではありませんが)がズレる理由が分かりません。 なんででしょうね?
プログラム的解析ページとかを見回って分かったけど エミュと言っても一部しかエミュして無いので特定条件下でそうなってもおかしくない つまりエミュがエミュって無いからです
SFCは6502互換だったし中国のパチモンみたいな100in1みたいなファミコンゲー公式で出せば良かったのに。 10本くらい余裕で入れれそうだし。
マシン全体としての互換性は如何に 新作やリメイクの方が儲かったんじゃないかな。 ブロードバンドもない時代だし
>マシン全体としての互換性は如何に ないに等しい。 当初は互換性をつける計画だったらしいけど、諦めた。 65816自体は6502からある程度応用が利くのだろうが、 SFCは基本仕様がツキハギだらけでグチャグチャだから。
エミュレートすることは出来るんじゃないのか
スーパーゲームボーイがあることを考えると、 エミュレートは可能だったかも。 それなら、スーパーゲームボーイみたいな周辺機器が 出てもおかしくなかったのだろうけど。
スーパーゲームボーイはあの中にゲームボーイのハードが入っているんだよ。
どっかに、 SFCで動くFCエミュ作ってた人いたような。
アドバンスの中にはゲームボーイが入ってるんだっけか
そしてDSの中にはアドバンスが
そしてみんなの心の中にはファミコンが
上手い事を言ったからといって俺は反応しないぞ!
970 :
名前は開発中のものです。 :2008/06/19(木) 20:36:16 ID:hoe5Xi9A
lda <$00 clc adc #$01 sta <$00 lda <$01 adc #$00 sta <$01 $00を1ずつインクリメントしていってFFをこえたら$01に1加算する 要は繰り上がりを考慮した計算がしたいんですが上のコードでちゃんと$01に加算されません 自分ではどこが悪いのかわからなかったんですが不適切な箇所をしてくださる 方いませんか?
つ、釣られないぞ!
972 :
970 :2008/06/19(木) 20:57:59 ID:hoe5Xi9A
ミスタイプ発見 >不適切な箇所をしてくださる 不適切な箇所を指摘してくださる です。すみませんorz
>>970 そこは間違ってないから、多分他の部分に問題があるよ
あと、1ずつ加算するだけならこうしたほうがいいよ
inc <$00
bne a
inc <$01
a:
974 :
970 :2008/06/19(木) 22:40:14 ID:hoe5Xi9A
ありがとうございます。 たしかに教えていただいたやり方のほうがシンプルですしバイト数も圧倒的に少なくてすみますね NESASMのマニュアルを読んでみると、incではCフラグ変わらないようでしたので わざわざadcで書いたんですが(^^; 目から鱗です
もうじき3スレ目なのに6502の解説wikiすらないのか
みんな銀行カードの暗証番号はやっぱ6502だろ?
>>958 ありがとうございます!
原因はエミュですか。では他にも遅れが出るソフトがあるかもしれませんね。
中村氏のウルトラプログラミングではなくてちょっと残念w
>>976 さすがにそのままじゃあれだから逆から読んで2056だ
979 :
名前は開発中のものです。 :2008/06/21(土) 00:26:20 ID:pjOwOOd7
猫でも分かるは分かりにくいから分かりやすいwiki作れ
お前が作れボケ 必要無い人間のほうが多いんだよ
↓次スレ