トップページ⇒tech
95コメント33KB

ファミコンのプログラム

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
ファミコンのプログラムを書いてエミュレーターで遊びたいんですが、
特殊な開発機材が必要なんでしょうか?
0045デフォルトの名無しさんNGNG
謎なNES ver0.03
http://hb3.seikyou.ne.jp/home/docokalaki/117.zip

この程度の事をやるのにどれくらいかかりますか?
0046デフォルトの名無しさんNGNG
ROMを落とせるところを教えてください。
あくまで研究・閲覧のためだけで、確認次第破棄します。
よろしくお願いします。
0047デフォルトの名無しさんNGNG
エミュ ROM で検索をかければ見つかるのではないでしょうか?
0048デフォルトの名無しさんNGNG
>>26
間違い。
正しくは、ノーマルだと、プログラムROMが256Kビット(バイトじゃないぞ!)、キャラクタ
ROMが64Kビットだ。
本体に内蔵されているメモリは、ワークRAMとVRAMが各16Kビット。VRAMはBG2枚分だけど、
BGを水平方向に並べるか、垂直方向に並べるかは、カセット側のショートランドで選択する。
0049デフォルトの名無しさんNGNG
>>48
じゃぁもっとしょぼいじゃんか
0050デフォルトの名無しさんNGNG
絵のデータの置き場所は決め打ちというより、
キャラクターROMに置くしかなかったような…
0051デフォルトの名無しさんNGNG
ドラクエ2や3はIRQ割り込みを使っているのですか?
自作エミュで音が出ないのです。
この辺りの解説をきぼん。
0052デフォルトの名無しさんNGNG
普通BGMの演奏には割込使うだろう…
0053デフォルトの名無しさんNGNG
自作エミュきぼんぬ
0054デフォルトの名無しさんNGNG
そうそう、256k(bit)なんて容量はすぐ使い尽くしてしまって、たった10バイトの容量
削るのに徹夜なんかして・・・泣きそうだった。
CGROMの開いている部分にプログラムを埋め込んでおいて、ただでさえ狭いRAM上に
ダイナミックに転送しては実行する、なんてこともやったなあ。
それに画面2分割スクロールも苦労したっけな。
ラスター割り込みがなくて、0番スプライトを画面中央に置いてBGとの衝突フラグを
ポーリングするしかないんで、そのタイミングを逃すと画面下半分のスクロールレジスタ
をセットしそこなってフレームが乱れるし。
そのために処理時間の管理もうまくやらないといけなかった。

GBのソフトも作ったけど、こっちはFCよりずっと楽だった。
8085カスタム(?)で昔から見慣れたニモニックを使えて、RAMも数倍の容量があって、
ラスター割り込みもあったし、ウィンドウ機能もあった。
スプライトも横に(FCの8個よりも)もっと並ぶし(苦笑)
0055デフォルトの名無しさんNGNG
カコイイ
0056デフォルトの名無しさんNGNG
ったく、業界は貧乏性のプログラマが多くてよー。
ま、そんなハードばかりだったから仕方ないんだけどさ。

35歳以上の開発者はいい加減引退して欲しいネ!!!
0057デフォルトの名無しさんNGNG
まともなゲーム作ってたのはその世代だよ。多分>>56
0058デフォルトの名無しさんNGNG
>>57
その世代「の極一部」なら同意。
所詮はファミコンバブル期。
0059デフォルトの名無しさんNGNG
>>54
俺もゲーボー作ったことあるよ。
たしかにファミコンよりは作り易かったな。
こっちの方が入門にはいいと思うが、まだ生きているハードなだけに
エミュレータはないだろうなぁ。
ところでCPUはZ80とほぼ互換だったけど、8085って名前だったっけ?

スーファミもやったけど、最悪だったよ。
CPUに8ビットモードと16ビットモードがあって、
2種類用のコードがごちゃごちゃに混ざるような感じだった。
ジャンプ先のモードが違うとぶっ飛ぶし…
入門には向かないね。
0060デフォルトの名無しさんNGNG
>>36
メモリ管理はアセンブラにシンボル渡すツール作ってしまえば、面倒な作業ではなくなったよ。
アドレスの割り振りも2本目以降そんなに変わるものでもないしね。
それよりハードとの同期を取るのが大変だよ。
あらゆる命令の動作クロック数を把握しておいて、ハードウェアとの
ハンドシェイクを取らなくちゃいけないからね。

>>39
目がドライブのCPUに0が1個足りないから非常に性能が低く見積もられてしまっているよ。
006151NGNG
>>52
確かに普通のゲームはNMI割り込みだけで動くんですけど、
ドラクエ類(エニックス)はダメなんです。
0062デフォルトの名無しさんNGNG
>>61
そういえば昔はドラクエはエミュ上ではパッチ当てないと音でなかったな・・・
0063デフォルトの名無しさんNGNG
ファミコンのゲームって美化されてるよね。かなり・・・
久しぶりにやるとショック!!
0064デフォルトの名無しさんNGNG
>>60
スーファミの話になっちゃうけど、一番厄介なのがラスターをスキャンしている時間はビデオ関係の
データ転送が出来ない仕様だったので、垂直か水平のブランク期間まで待てって感じの作りだった。
しかし当然次の垂直同期信号までに次の画面用の計算は終わっておかないとならないので
(NTSCの場合は垂直同期信号は60Hz)、水平同期なんて待ってると60分の1秒では全然間に合わない。
だから、割り込み処理を使って非同期処理の嵐。
基本的にCPUが遅すぎなのでサイズよりも実行速度との戦いになる。

あと、PAL版に移植したときは、垂直同期の間隔が50Hzになったが、これはそのまま移植できた。
PAL用に処理時間が設計されてると、NTSCへの移植は地獄を見るだろうな。
0065デフォルトの名無しさんNGNG
>>64
ファミコンはサイズとの戦い、スーパーファミコンは実行時間との戦いという感じだった。
0066デフォルトの名無しさんNGNG
NMI割り込みってマスクできたんだよな。確か。
変な話だ。
0067デフォルトの名無しさんNGNG
>>64
PALって何者なんですか。
海外のやつですか?
0068デフォルトの名無しさんNGNG
PALはヨーロッパで主に採用されてるヴィデオ方式だよ。
なんたってプログレッシブだから静止画オタには憧れの的だよ。
0069 NGNG
私としてはファミコン版魔界村がクリアできないので
ROMを改造したいぞ〜
0070デフォルトの名無しさんNGNG
2周目の1面のウッディーピッグがスプライト消えまくりで
こんなん行けるかゴルァ!って感じだったな。
0071デフォルトの名無しさんNGNG
>>68
PALもインターレースだろ
0072デフォルトの名無しさんNGNG
ファミコンのROMをコンバートしたいんですけどそういうのありますか?
0073デフォルトの名無しさんNGNG
>>72
dump.exeを使えばテキストにコンバートできるよ。
0074デフォルトの名無しさんNGNG
>>72
コンバート=変換って意味だよ。
0075デフォルトの名無しさんNGNG
逆汗したいのか?探せば結構あるぞ。日本語のもあるし。
0076デフォルトの名無しさんNGNG
板違いだよ。わかってんの?
0077デフォルトの名無しさんNGNG
>>76
??? どこが?
0078デフォルトの名無しさんNGNG
思い出した!
インターレースといえは、スーファミ(ファミコン等他のゲーム機全て同じと思う)は、
ほとんどのソフトが似非プログレッシヴモードで動いていたような気がする。

内部的には、プログレッシブに捜査しているかの如く動作し、ビデオ出力する時点で
EVENとODDフレームに分けて出力する。

つまり、垂直同期60Hzと書いたが、内部的には30Hzだったような気がした。
0079デフォルトの名無しさんNGNG
うみゃ? 60Hzでフィールドごとに走査線ずらしてないだけでしゃう。
結果的に縦解像度半分のプログレッシブ。
ちなみに表示ラインは光量がインターレースの倍になるため、
画面が焼きつく恐れがありますので
液晶プロジェクタでの使用はご遠慮下さいの注意書き。
0080デフォルトの名無しさんNGNG
遅レスですまなんだが
エミュ作るならBERO氏のページがいいよ。
資料もおいてあるし、エミュレータとソースもおいてある。
urlは忘れたのでグーグルでFCEとかFPCEとかサーチすれ。
0081デフォルトの名無しさんNGNG
Bero氏のサイト
http://www.geocities.co.jp/Playtown/2004/
http://www.bekkoame.ne.jp/~bero/
0082デフォルトの名無しさんNGNG
>>79
それって、普通のNTSCのテレヴィに
規格外の信号を送ってプログレッシヴにしてる
てことかな?
それとも元々そんな怪しげな仕様が規格にあった?
0083デフォルトの名無しさんNGNG
>規格外の信号を送ってプログレッシヴにしてる
その通りでござる。
0084デフォルトの名無しさんNGNG
規格外なもんで、初期には
ファミコンの出力に同期が取れないテレビとかあったよね。
0085デフォルトの名無しさんNGNG
わかってはいると思うんだが、エミュで動かす前提でソフトを開発するのって
相当ナンセンスなような・・・
どうせエミュレータならN88BASIC for Windowsとかで・・・
0086デフォルトの名無しさんNGNG
描画ルーチン使いまわしできないかなーイヒヒとかって
ZSNESのソース落としてきたら、
9割以上アセンブラでギャフン。即退散したヘタレな俺。
0087デフォルトの名無しさんNGNG
>>85
>相当ナンセンスなような・
禿同
コンサマー機に良くある制限事項まで綺麗にエミュレートしている
(=優秀なエミュ)であればあるほど、
開発者は苦労する。
何のための制約なんだって感じ。
0088デフォルトの名無しさんNGNG
age
0089  NGNG
0090デフォルトの名無しさんNGNG
やることに意義があるage
0091無能な姦理人@Shiri-QNGNG
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□





続きはコチラです
http://www.geocities.com/entry_k/main/main01.html
0092デフォルトの名無しさんNGNG
>>85
いろんなマシン(OS)上で動く、という利点はあるわな。
0093デフォルトの名無しさんNGNG
作っているのかな?
0094デフォルトの名無しさんNGNG
>>85
JavaをバカにするとJava厨が怒りますよ
0095デフォルトの名無しさんNGNG
なんでJava?
■ このスレッドは過去ログ倉庫に格納されています