ファミコンのプログラム2
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/12/21(水) 02:19:16ID:3YuJDfXD開発ツールはどこで手に入りますか?
0294名前は開発中のものです。
2006/04/11(火) 03:34:51ID:MKuGPSCR0295名前は開発中のものです。
2006/04/11(火) 05:32:51ID:UPOvrKAGあくまでも擬似だろう。
まあワイヤーフレーム扱いでもいいと思うけど。
0296名前は開発中のものです。
2006/04/11(火) 21:03:34ID:454Iw88x0297名前は開発中のものです。
2006/04/11(火) 21:38:49ID:zrkEL5pk0298名前は開発中のものです。
2006/04/12(水) 05:10:48ID:MCS8c1am全然凄くない
0299名前は開発中のものです。
2006/04/12(水) 07:16:31ID:/zPv2MUpじつはそのサイトすでにMMC5でググったときに発見したんです。
MMC3が512KBというのもそこからの情報です。
スゴイですよねAIRは知りませんが興味がわきました。
そのくらい力のこもったデモです。
そこのソースやMMC5の仕様書を探してきて僕には
ちょっと理解できないかなと・・・時間をかけて自分で分析してみます。
$8000に番号を設定するだけの単純制御のマッパー#2がやっぱり好みです。
0300名前は開発中のものです。
2006/04/12(水) 09:35:34ID:HwQjafm3nesdevにも2KB以下の物置いてあるけど、音とか動きありの表現の多彩さという点から見れば、このコンパクトさは秀作の部類に入るだろうね。でもどうせMMC3でやるならIRQカウンタ利用でもちょっとだけ面白いこと出来そう。
0301名前は開発中のものです。
2006/04/12(水) 09:55:05ID:VvFnFpKN遊び方が分からなくて速攻で捨てた。
どうやって遊ぶの?
0302名前は開発中のものです。
2006/04/12(水) 10:16:17ID:Bt41zxjq>>279のスレ読んでみると分るけどこれゲームじゃなくてNES使ったコテをからかうネタらしい。
0303名前は開発中のものです。
2006/04/12(水) 21:59:46ID:l1sjE/nd0304名前は開発中のものです。
2006/04/13(木) 08:18:37ID:RC0dscIbここのPCMで鳴らしてるヴィヴァルディって実機でも再現できるのか?
なんかここまで出来るとは思わなかった。
0305名前は開発中のものです。
2006/04/13(木) 19:08:07ID:E6DqOJJ4マッパー#2サンプル
なぜかネットのサンプルはCHR-ROMを使ったものが多いので
画像を転送するとこは調べて実装しなきゃならなかった…
ゲーム中にサウンド鳴らしスプライトアトリビュート転送しながら
画像も転送するの大変そう。やっぱchr-rom切り替え方式の方がいいのかな?
#2はシンプルで扱いやすいゆえに腕しだい次第なんだろうど
マッパーによっては拡張機能があるのにそれを利用できないってのもありますね。
>304
nsfをやってる人はたぶん実機再生にこだわるのでしょうね。
ゲーム作りたい僕はいろいろ考えたあげく実機はあきらめ、
携帯機用エミュで動くかどうかむしろ気にしています。
0306名前は開発中のものです。
2006/04/13(木) 20:59:59ID:rktja/+N0307教えてください。
2006/04/14(金) 01:35:21ID:sHF4oYrwでもネームテーブルって1バイト指定で0〜255までしか指定できないんだけど。
後半256〜512を指定するための1ビット情報はどこ?
0308名前は開発中のものです。
2006/04/14(金) 06:03:33ID:3ztRHlyk0309名前は開発中のものです。
2006/04/14(金) 11:52:34ID:7Lw4kB5uいいことだ
0310名前は開発中のものです。
2006/04/14(金) 12:19:55ID:2aBigJ+Xすずめ愛好会10000兆回読め
0311名前は開発中のものです。
2006/04/14(金) 13:06:36ID:PCnDQiGJ0312名前は開発中のものです。
2006/04/14(金) 13:50:58ID:2aBigJ+X.bank X
.org $XXXX
.incbin "CHR-filename.chr"
みたいに。
分けた方がyy-chrで編集しやすいだろ。
0313名前は開発中のものです。
2006/04/14(金) 16:40:41ID:bisLiPBM10000兆回だって(プ
0314名前は開発中のものです。
2006/04/14(金) 18:28:23ID:y4IRzCwa解りました。$2000バイトのうち前半か後半しか指定できないのですね。
日本語表示サンプル
http://gamdev.org/up/img/5296.zip
>311
このサンプルの場合は2ビットのデータを1ビットに
圧縮?してあるのでソースに組み込んでます。
使ってないプレーンのデータを最初から持たないとか、今ではもう
使われない技術ですよね・・・
0315名前は開発中のものです。
2006/04/14(金) 18:33:07ID:y4IRzCwaありがとうです。
0316名前は開発中のものです。
2006/04/14(金) 18:34:54ID:7Lw4kB5u0317名前は開発中のものです。
2006/04/15(土) 12:32:18ID:lIlKv2UL0318名前は開発中のものです。
2006/04/15(土) 12:59:34ID:JpWf7Wtr0319名前は開発中のものです。
2006/04/15(土) 13:07:27ID:EPF6oi/c中国とか特殊なマッパー使ってるみたいだし
0320名前は開発中のものです。
2006/04/15(土) 13:31:38ID:OieYxVhbカセットがマッパー使ってるんじゃなくてカセットに合わせてマッパーつくってるんでしょ。
0321名前は開発中のものです。
2006/04/15(土) 15:05:51ID:YaMlb7yiもちろんできるがエミュで動かすには新規マッパーをエミュレート
できるように変更が必要になる
0322名前は開発中のものです。
2006/04/16(日) 01:47:01ID:zXH1WdC7実機なら楽勝。
オープンソースのエミュならソースを改造すれば行ける。
0323名前は開発中のものです。
2006/04/16(日) 09:37:00ID:vYhIWdmi0324名前は開発中のものです。
2006/04/16(日) 10:04:37ID:FFYeBH/F0325名前は開発中のものです。
2006/04/16(日) 12:28:38ID:ZtkfOHQ80326名前は開発中のものです。
2006/04/16(日) 12:36:03ID:ZtkfOHQ80327名前は開発中のものです。
2006/04/16(日) 12:36:57ID:ZtkfOHQ80328名前は開発中のものです。
2006/04/16(日) 19:26:58ID:dH9WBUgD0329名前は開発中のものです。
2006/04/16(日) 19:29:05ID:dH9WBUgD0330名前は開発中のものです。
2006/04/16(日) 19:43:06ID:UbiL1ta7それディスクシステム
0331名前は開発中のものです。
2006/04/16(日) 23:19:24ID:zDKgGaszおお、そうなんですか。
サンクス。
0332名前は開発中のものです。
2006/04/16(日) 23:47:15ID:FFYeBH/F絵は確かに少ないかもしれんがプログラムだけで何MBも埋められるのか?
0333名前は開発中のものです。
2006/04/17(月) 00:07:12ID:aMaN01bz0334名前は開発中のものです。
2006/04/17(月) 09:57:41ID:+Ks4H0y3ワイヤーフレーム
0335名前は開発中のものです。
2006/04/17(月) 11:50:49ID:uvay/8Qi0336名前は開発中のものです。
2006/04/17(月) 13:41:38ID:zQMP+Uqe僕の場合はマッパー#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で苦労してゲームを作るのかと
0337名前は開発中のものです。
2006/04/17(月) 13:55:24ID:zQMP+Uqeすごい。無理すればワイヤーフレーム表示できるみたいですね。
ただ、どのエミュでも表示がバグってる…
NES程度のマシンで3Dするにはかけ算とかわり算の処理をいかに軽くするかが
ネックになりそう
そういえばNESでわり算するには
3000/200なら3000から200を引いていくしか無いんですよね?
二進数で考えてもっと高速に出来ないでしょうか。
0338名前は開発中のものです。
2006/04/17(月) 14:06:25ID:DcPA73Y+シフト・ローテート
0339名前は開発中のものです。
2006/04/17(月) 14:26:18ID:5WDJnE2+>>NESASM制限
そんなのソース分割コンパイルして
自作ツールなり使って再結合すればいいだけじゃん。
それか他のアセンブラ使えよと。
結局NESファイルヘッダの仕様上、
PRG =4MByte
CHR =2MByte
までだけど
0340名前は開発中のものです。
2006/04/17(月) 23:35:35ID:t+ajaYnQNESヘッダって予約領域なかったけ?
0341名前は開発中のものです。
2006/04/18(火) 00:45:42ID:ZHGNq+Iw0342名前は開発中のものです。
2006/04/20(木) 06:24:03ID:8eW3K1w24メガバイトのマッパー#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関係なくこれが限界です。
0343名前は開発中のものです。
2006/04/20(木) 06:26:21ID:8eW3K1w2「データをずらす」とは
.bank 100
.incbin "data.bin"
を.bank 101 とかにすることです。
0344名前は開発中のものです。
2006/04/20(木) 16:49:22ID:WLsBR7uE4MB実験(DASM32)
0345名前は開発中のものです。
2006/04/20(木) 18:43:33ID:r0o+ynkFハードウェア的には16KB×16バンク=256KBが上限
HVC-UNROM(ドラゴンクエスト2)は128KB
HVC-UOROM(桃太郎電鉄)は256KBのPRG-ROMを搭載
0346名前は開発中のものです。
2006/04/20(木) 23:52:38ID:zrKwgU3aどんな大作つくるんだか
0347名前は開発中のものです。
2006/04/20(木) 23:57:31ID:UtGGvvcD0348名前は開発中のものです。
2006/04/21(金) 01:05:00ID:+7M5hFqfそういうマッパーを作れば出来る
0349名前は開発中のものです。
2006/04/21(金) 02:34:27ID:AcntXauZ0350名前は開発中のものです。
2006/04/21(金) 08:30:04ID:nOx6wEC00351名前は開発中のものです。
2006/04/21(金) 09:28:21ID:iVt254r8inesの作者が作ったんだ。
0352名前は開発中のものです。
2006/04/21(金) 17:19:24ID:jGYnqhJ2ゲームセンターCX 全回収録DVD
0353名前は開発中のものです。
2006/04/22(土) 05:43:22ID:yPrEeKvN(2 ^ 0x40000) * 8kバイト
じゃね?
0354名前は開発中のものです。
2006/04/22(土) 06:10:47ID:FjSJzeDh0355名前は開発中のものです。
2006/04/24(月) 21:27:20ID:vozGUBYmバトルボックス、パチンココントローラ、ホリトラックを解析してほしい。
0356名前は開発中のものです。
2006/04/24(月) 22:44:39ID:hAEZ/5sOttp://nesdev.parodius.com/bbs/viewforum.php?f=11
0357名前は開発中のものです。
2006/04/25(火) 10:25:16ID:eQVOyxW8それ、ぜんぜん解析されたといわない
ちゃんと解析されてたらエミュで対応されてる
0359名前は開発中のものです。
2006/04/25(火) 10:38:32ID:+gtJ8b5aFCdevへ ようこそ
かなと思った。
0360名前は開発中のものです。
2006/04/25(火) 11:12:34ID:9uMNhbWK0361名前は開発中のものです。
2006/04/26(水) 17:39:03ID:6Qo7aFja長文になるがスマン
マッパーについて詳しい事は分からないが、これはNESのヘッダ同様、
iNES作者がnesRomをエミュ上で動かす為に作った情報と思われる。
それは、6502のメインメモリ内で行うバンクの切り替え方式や、持てる
サイズ容量、つまりPRG-ROMやCHR-ROMの数もマッパーにより違う。つまり
マッパーというのはメモリを管理し、データをメモリに割り当て、実行する
手順の方式のようなものだと思う。
そもそも、従来の任天堂のファミコンのシステムには、マッパーという概念
がなく?メーカーそれぞれによって、拡張システムを使うことなどによって、
メモリの管理の仕方が違ってくるのは当たり前で、だがこれはマッパーという
概念がなくても出来た?けど、エミュ上で動かす際に、各メーカーの実行方式
などを分かりやすく整理させようって事で、NESの作者がメーカーごとなどに
マッパーというのを振り分けたんはないだろうか?そしてこのマッパーごとの
実行方法を、エミュレーターに定義させて、これからやるNESROMの中に、その
定義させた同じマッパー番号があれば、晴れてエミュ上で動き、プレイ出来る
という感じではないだろうか?つまりマッパーという概念は、エミュレーター
から始まったんじゃないかと思う
0362名前は開発中のものです。
2006/04/26(水) 17:55:28ID:l6uMv6wp0363名前は開発中のものです。
2006/04/27(木) 09:28:33ID:HRBI1O1P>がなく?メーカーそれぞれによって、拡張システムを使うことなどによって、
>メモリの管理の仕方が違ってくるのは当たり前で
その拡張システム(拡張回路&拡張チップ)がマッパーの事だ。
まあ、マッパーという名前自体エミュができてから付いたんだけど。
0364名前は開発中のものです。
2006/04/27(木) 10:18:56ID:dsl4dmki0365名前は開発中のものです。
2006/04/27(木) 11:14:41ID:HRBI1O1Pチップ(メモリーマップコントローラ)名 > PCB(基板)名 > メーカー名 > ゲーム名
Nestopiaというエミュレータのドキュメントが世界一正確である。
・マッパー番号は、カセット解析者&エミュ作者が勝手に採番している。
・最近は、iNES形式だとマッパー番号に限りがあるので(0〜255)、番号にとらわれないUNIF形式という
新フォーマットが主流になりつつあるが、UNIF形式のROMイメージを作ることは容易ではなく、
めったに出回らない。
0366名前は開発中のものです。
2006/04/27(木) 13:18:53ID:HRBI1O1P他のエミュ(Nesticle他)もその定義を守っていたが、新たなカセットを吸いだすにつれ
34までのマッパーでは動かせないので、マッパー4に改造したりと、ユーザーは無理やり
動かしていた。そこで一石をとうじたエミュがfwNES。fwNESはそれまでタブーだった
「マーラット以外の人間による新しいマッパーの定義」を打ち壊し、独自のマッパーを新しく定義した。
結局マーラットもfwNESで定義されたマッパーをiNESで採用することになる。
0367名前は開発中のものです。
2006/04/28(金) 00:47:07ID:uAhY4XOJ0368361
2006/04/28(金) 01:23:16ID:fPhSWEUnお陰でより分かった。
ついでに分からない人の為にバンクの簡単な
説明もしてもいい?
0369名前は開発中のものです。
2006/04/28(金) 06:13:18ID:Hn8mMJ+w0370361
2006/04/28(金) 08:13:33ID: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でゲームが表現出来る。
0371名前は開発中のものです。
2006/04/28(金) 08:20:49ID:fPhSWEUnBG、スプライトそれぞれ256個しか一度にVRAMに貯めておけないため、
ゲームでいうとテトリスみたいなCHRデータをあまり使わないゲームだったら
これだけで(1バンクだけで)足りるけど、何面もステージがある
アクションゲームなどは、256個のタイルだけじゃとても描ききれない。
そこで、ステージごとに、あるいは、そのステージ内だけでも256個の
タイルでは足りなくなった場合、バンクを切り替え、さらに256個の新たな
画像データも使うことが出来る、こうやってバンクを切り替えることによって、
CHR-ROMの場合、256個の制限が、実際512個でも768個でも使えるようになる。
しかしもちろん切り替える前に使っていたバンクの画像データは使えないので、
必要であれば今使っているバンクも同じ画像データを入れて置くといい。
最後に、そもそもファミコンの処理能力の限界が、6502CPUのPRG領域が
$8000~$BFFF、$C000~$FFFFそれぞれ16kb、画像を貯めておく領域が8kb(拡張
チップなし前提に)なのでこれ以上1つにまとめすぎても、効率は一緒だし、
順々に読みこんでいくより、こうして細かく分ける事によって、
バグが発見しやすくなり、再編集するにも目的のデータに比較的
素早くアクセス出来るようになり、しやすくなる為です、かな?
簡単にまとめるどころか長くなりすぎたorz スマン
0372名前は開発中のものです。
2006/04/28(金) 09:41:00ID:gqyOGCV7ファミコンでVRAMと言ったらPPUアドレス$2000〜を言う。
0373名前は開発中のものです。
2006/04/28(金) 12:32:52ID:f9amTu5Pすげぇ。パソファミで吸出しをしているので結構勉強になったよ。
0374名前は開発中のものです。
2006/04/30(日) 02:55:04ID:wACD+E+cという操作性の悪さだが、Aボタンで回転するようにならない?
教えて分かる人。
0375名前は開発中のものです。
2006/04/30(日) 05:09:27ID:oTeSoYx80376名前は開発中のものです。
2006/04/30(日) 18:30:52ID:9DB1nkrFchrバンクの無いカートリッジは$0000からがvramじゃないの?
0377名前は開発中のものです。
2006/05/01(月) 00:43:11ID:747ffHua0378名前は開発中のものです。
2006/05/01(月) 00:59:19ID:pEUMR+rv$0000〜1FFF:CHR-ROM or CHR-RAM(CROM、CRAM)
$2000〜2FFF:VRAM
SRAM:日本ではバックアップ用スタティックRAMのこと。海外ではセーブRAMと書かれている。
0379名前は開発中のものです。
2006/05/01(月) 05:43:40ID:ybfgw47j0380名前は開発中のものです。
2006/05/01(月) 08:02:42ID:d29i4QWy2000-2FFFはファミコンに実装(RAM
これが通常のスタイルだから後者の方をVRAMというべきだろう。
6000-7FFFはファミコンではW-RAMという。
カセット分解すればそう書いてある。
NES通はそう表記する人も多い。
上記は全部SRAM(スタティックRAM)である。
ちなみにディスクシステムのRAMアダプタの
BIOS領域はROMで、
PRG領域はDRAM(ダイナミックRAM)で、
CHR領域はSRAM(スタティックRAM)だ。
0381名前は開発中のものです。
2006/05/02(火) 14:34:33ID:tNXz10cu0382名前は開発中のものです。
2006/05/02(火) 17:43:15ID:JuFpwGslNES
0383名前は開発中のものです。
2006/05/03(水) 07:37:52ID:3jOke96e$0000-$1fffはカートリッジにRAMが積んであるんですか?
本体にRAMがあってVROMがあるときはRAMが見えないように
なってるだけかと思っていました。
0384名前は開発中のものです。
2006/05/04(木) 15:32:05ID:ALzFyyxy0385名前は開発中のものです。
2006/05/04(木) 22:07:37ID:Diyeh7yC0386名前は開発中のものです。
2006/05/05(金) 20:37:18ID:UVOwJzeWSRAMって書いてもどのSRAMかわからんことになるからセーブするやつはセーブRAMと書いてるんじゃない?
SRAMのSはSAVEのSじゃないと思うぞ。多分・・・。
0387名前は開発中のものです。
2006/05/06(土) 02:16:15ID:PigOhM3qだから>>378もいうようにスタティックramのSじゃないのかな?
0388名前は開発中のものです。
2006/05/06(土) 08:32:09ID:IgHE96Bfその通り、CHR-RAMはカセットに乗ってます。
0389名前は開発中のものです。
2006/05/06(土) 16:20:20ID:d/JFhHOgスタティックRAMなのは知ってるよ。というか常識的にはスタティック。
でも>>378の彼はSRAMのSを海外ではSAVEのSと捉えていると思ったんだろう。
0390名前は開発中のものです。
2006/05/06(土) 21:31:23ID:ZtJ8ZPorどういうわけだろう。
みんな技術勉強して満足しておなかいっぱいなのかな
0391名前は開発中のものです。
2006/05/06(土) 22:00:28ID:xHrcyiUa面白いゲーム作りてーなチクチョー
0392名前は開発中のものです。
2006/05/06(土) 22:24:59ID:VKk/Zpg60393名前は開発中のものです。
2006/05/06(土) 22:25:43ID:VKk/Zpg6■ このスレッドは過去ログ倉庫に格納されています