ファミコンの限界について語るスレ Ver.3.1
■ このスレッドは過去ログ倉庫に格納されています
>>666
初回ってそういう意味じゃなくて、連続したラスタースクロールさせる開始位置の検出って意味で書いたのよ 開始位置以降でも検出のたびに
0番スプライト座標弄ってずらせば1画面中で何度でも走査線検出できるから
わざわざ自力でタイミング取る必要ないと思うんだが クロック数えてループする方が簡単だろ
動的なもんでもねえし >>670
描画中に0番だけ位置変更って、実際できるの?
DMA使ってもいいけど、ロスが多い。
DMA使わないスプライトデータの書き込みって、市販ソフトで存在するのかな? >>670
>検出のたびに0番スプライト座標弄ってずらせば
ファミコンのPPUは出来ない
VDP(TMS9918)では表示中に変更出来るけど
ちなみにヒットフラグはVBlank終了時にだけリセットされる仕様だ >VBlank終了時にだけリセットされる仕様
そうだったのか! 1ライン毎にリセットするのかと思ってた。 複数の敵キャラクターを歩かせると、処理落ちしてしまい、激重になること。
ひどい時は、BGMがゆっくりになることもある。 拡張チップの解説のゲームラボ2013年12月号が、アマゾンで安くなった。 そういえばファミコンカセットにDSP積んだ例ってないよな
一応MMC5の乗算回路がそれに該当するのか? PPUの仕様について説明する時スプライトは8*8ドットって書いてるページがあまりにも多いけど
実際には8*8が使われたのは初期のゲームくらいで(マリオブラザーズとか)
ほとんどは8*16じゃないの? そんな事はないと思う。適宜8*8も使われていると思うな。 8×8モードと8×16モードの違いの詳しい違いって何? わからないのにほとんどが8*16とか言っちゃったの? >>678
シューティングの敵の弾とかスコア表示とかむしろ8x16の方が少ないんじゃないかと。
疑問に思うのならゲームのCHR-ROMを見てみるといいよ。
8x16を多用するとCHR-ROMの使い方に制限が出てくるから。 え?だって8*8と8×16って一画面中に混在できるの? 8x8もしくは8x16って書くのが正確だろうね
>>683
上下のステータスの部分を8x8にするとかなら出来なくはないかも >>684
そうだよね、混在できないよね?
だとしたらできるだけ大きいキャラクタをたくさん出したいゲーム(大半のゲーム)は8×16モードを使ったと思う
スプライトで塗りつぶせる面積が倍だもん そもそもスプライト64枚の制限にひっかかることの方が少ないのに
そんなパターンの流用が困難になるようなことをするとかまずない
仕様上ただでさえ参照可能な範囲が小さいのに
ファミコン時代に8x16なんて豪勢な使い方したソフトの方が少ないと思う
てかただ表示枚数上限を64枚以上にしたいってだけなら
そんなことしなくてもできるし8x16は本当にメリットが小さい
8x8ドット表示を使ってるソフトも普通に多い
マリオシリーズのファイアボールもそうだし、シューティングゲームなら弾はまず8x8ドットだ
逆に8x16を使ってるソフトがあるのか気になるわ 例を挙げると、グラディウス/グラディウスIIは8x16だね
グラディウスIIなどは64個で足りてないからミサイルに点滅まで
使って見かけ上のスプライトを増やしてる
8x8も8x16もどちらも使われてるし、ゲームによって様々だよ 8x16の場合は番号の下1ビットがCHR-ROM前半/後半の指定になるね >>685
大きいキャラを沢山出したいゲームってのが当時は少ないんだよね。
どっちにしてもスプライトの横並び制限は枚数じゃなくスプライトのトータルドット数だから。
スプライトとして表示できる面積は倍になっても
スプライトを横に並べた時の有効面積は変わらないよ。
CHR-ROMで思い出したけど、
ドラクエ1のCHR-ROMにキャラとして表示させるとぐちゃぐちゃになってる部分があった。
何だろうと思ったらプログラムだった。ワークRAMに転送してPRO-ROMの代用にしてたんだな。 ファミコンの性能で、Windows 95を動かしたら…。
ファミコンのアーキテクチャに対応していないから動かないと思うけど、
仮に動いた場合、20MHzのプロセッサと4MBのメモリで動かす環境に等しい。 >>692
486SX20MHzでメモリ8MBでWin95を動かした事ならある。
実験として動かしただけだが。
4MBで動いたかどうかは知らん。 いいや、PC-9801NA/C
本来なら画面モードの関係でWin95に対応できないがグラフィックドライバを意図的に組み込まずして映す事に成功した。
256色表示が不可能だから本当に実験しただけ。 そもそも>>692がいろいろおかしい
ファミコンの性能でって自分で言ってるの20MHzなんて言葉が出てくるってどういうことだ
そもそも20Mhz4MBって普通にWin95が動作する環境じゃん、最低動作環境だけど
「ファミコンレベルの性能でCP/Mを動かすことは、Win95を最低動作環境で動かすことと等しい」
っていう例えならわかる ファミコンって1.76MHzくらいだったっけ?
メインRAMは2KBだったと思う。 21.47727MHz(ファミコンの水晶振動子)を12分周した1.7897725MHz
動作周波数が中途半端な理由はPPUと水晶振動子を共有しているためで
動作周波数が低い理由は周辺の回路との兼ね合いのため
ちなみにSFCのCPUの動作周波数は一般に3.58MHzとされているが
メモリマップに2.68MHzや1.79MHzでしかアクセスできない場所があるため
バス幅が8bitであることもあり、プログラムによってはファミコン並みの性能になる CPUのビット数の公称(通称?)って曖昧だよなぁ。
内部8ビット、外部バス幅8ビットで8ビットのZ80、
内部16ビット、外部バス幅8ビットで16ビットの8086、
内部32ビット、外部バス幅16ビットで16ビットの68000、
内部32ビット、外部バス幅8ビットで16ビットの68008、
(外部バスはデータバスの意)
FCは共に8ビット、SFCは16ビットの8ビット。
間違ってたらごめん。 外部バス幅8ビットは8088で8086は普通に16ビットだぞ Pentiumはデータバスが64bitでも別に64bitCPUなんていう認識はなかったな。
アドレス空間は32bit(4GBのメモリを直接管理できる)だったし。
>>700
過去の雑誌でSFCのCPUはメモリアクセスが速いから3.58MHzで3.58MIPSなんて頓珍漢な事をほざいてたものがあった。
3MIPSだと80386の16MHzがそれくらいの性能だったと思う。 >>702
勘違いか。指摘どうも!
V30は8086ごかんだっけ? 動作周波数1.76MHzでも倍近い周波数で動かしてるZ80より速いんだからファミコンのCPUって凄いよね
スーファミも遅いってよく言われるけど動作周波数からしたら相当速いと思う Z80は実質無駄な命令が多い上に命令の実行が遅かった(最大20サイクル)
最悪なのがALU(加減算やビット演算を行うところ)が4bitということ
後に出たいくつかの互換品は改善されてるらしいが・・・
6502は命令数が少なくZ80と比べるとコード効率は悪いが全体的に命令の実行が速い(最大7サイクル)上に
ゼロページ内を対象とした命令は他ページに対するものよりもおよそ1サイクル速かった
ブランチ命令(条件分岐)も上位バイトへの桁上げがなければ2サイクルで終わった FM-7やMB-S1が6809で2MHz
PC-8801やPC-6001、X1がZ80で4MHz
同世代だとだいたいモトローラ系はZ80より低クロックでも同性能を実現していた
しかしPC60系やSR以前のPC88はVRAMアクセス中はCPUが停止するというクソ仕様で
同じZ80のPASOPIA7とかMULTI8のが明らかに速かったな
6502系ってファミコン以外は、アップル2、VIC-1001、コモドール64と1MHzばかり >>706-707
命令のつぎ込みすぎと言えばそうかもしれないけど、
Z80はレジスタが多い分I/O制御するとかは使いやすかったな。
もともとPCはビジネスマシンだったからゲームに対しての反応速度が考慮されていないのは仕方ない。
部品数もできるだけ抑えたかっただろうし。シャープがX1からホビー要素をいち早く取り入れてきたなぁ。
カラーPCGがうらやましかった。 >>708
>もともとPCはビジネスマシンだったからゲームに対しての反応速度が考慮されていないのは仕方ない。
FM-7のキーを1度押したら離したのが検知できないってのは有名だったな
ギャラクシアンだと、4と6のキーで自機を左右を動かすんだけど、1度押したら動きっぱなしで
わざわ別のキー(たいがいは5)を押さないと止まらないという
PC-88やPC-60はキーの問題はなかったけど、88SR以前はとにかく画面描画の問題で遅かったし、BEEP音。
MZ-80系はサウンド機能ありだけど単音でモノクロ。80KC系はグラフィックなし。
X1はキーの2個同時押しが判別できなかった。例えば4と8の同時押しで左斜め移動させることは不可能。
斜め移動させるには7を押さないといけない。そんなわけでゼビウスではジョイスティックが付属する
パッケージもあった。FM-7の問題もジョイスティックで解消すればいいんだけど、あまり普及していた
ように思えない。
88系はSRでFM-7はAV以降で問題は解消していくんだけど、それまではどの機種もアクションを
やるには一長一短があった。いずれにせよ当時のスペックではスプライトがないと
基本的にアクションゲームは厳しいよね 昔は1本のカセットで複数のゲームが遊べるかもって妄想したっけ。
ゲームBOXペンタやゲームBOXセブンみたいな。
あとはカセット裏返して遊べばB面ゲームが遊べれば、とか。
レコードやカセットテープじゃないっつーの。 すまん、修正
遊べるかも→遊べるようになる(そういう製品が発売される)かも
でお願いします。 個人の妄想とハードの限界との区別がつかないバカが修正したところで >>711
その手の奴って、1つのゲームに、
複数のチートverが含まれていてそられもカウントした数じゃなかったっけ?
起動時にBIOSのようなゲーム選択画面が出て選択できるやつ。
あまり期待はしない方がよさそう。 チート機能が付いてれば当たりの方
大抵は全く同内容の繰り返し >>712
カセット裏返しはちょっとおもろいと思ったけどな…。 カセット裏返しねぇ・・・電気的構造上表裏逆に挿すことはできないし
上下逆に挿すようにしても回路の規模増えて無駄になるだけだしなぁ
完全にロマン機能ですわ PCエンジンのHuカードは構造上逆挿しが可能
運が悪いと壊れる 昔アップル版だかのカラテカは
フロッピーを裏返して入れると
上下反転した画面のカラテカが遊べたりしたよ。 それだけカセットテープやレコードが世間に浸透してた時代 カラテカがどうかは知らないがApple2のドライブは1Dだから
2DのFD裏返して使うのは普通のことだよ >>724
そもそもFDD1機にヘッドが向かい合わせに2つついてるのって無駄で贅沢だと思わない?必要ないでしょ?
逆に言うと、そもそも片面を使うものとして考えた
→ディスクの裏面にも磁性体を塗っとけばひっくり返せば両面使える!
→ヘッドを2つ向かい合わせにつけとけばひっくり返す手間がいらない!
っていう贅沢発想 ふざけてPC-98で5.25型のディスクを裏返して使った事があるな。
インデックスホールを上手く合わせれば読み込むことができ…るわけがないか。
ファミコンもQDじゃなくFDにすれば…それもだめか。高くなりすぎたかな。 ほとんど使った記憶の無い本体が出てきたが
欲しい人いるのだろうか
いなければ来週の燃えないゴミ行き 買い取ってくれる店ないの? ハードオフとか。
というか有鉛ハンダ使ってる電化製品を燃えないゴミに捨てない方がいいと思う。 >>730
出力がRFだから使えない100円ジャンク扱いなんだよな
未開封品か角ボタンなら 多少手を加えるだけでコンポジットNTSC信号が取り出せるのにね
ロットによってはただ配線引っ張るだけだし 故障でもしない限り本体に手を加えたくない自分としてはは
ビデオデッキかRFコンバータ 部屋のTVはまだブラウン管アナログTVだからファミコンもつなぎ放題だな ひさびさにRF→ビデオデッキでつないだら同期合わない
自動しか選択できなくて調整できないや マジックジョンやってたら
とあるボスの配色が16×16のカラフルな四角タイル並べただけでワラタ。思い切った事するなあ
このゲームは他のボスも極彩色なんだが、同時に背景が灰色なのも気になる スプライトダブラーって、
よくわかんないけどファミコンの限界スプライト64個が、?2で128個表示できるって事?
ファミコンで実現したソフトがあるの?
もしかしてファミコンじゃなくて別ハードの話かな? 1フレームごとに切り替えて擬似的に倍表示させるって話では いや、1フレームごとだったらよくある点滅表示だよ
ダブラーってのは言うなれば半フレームごとに切り替えるって話でしょ? 画面の描画が、ラインバッファと呼ばれていた時代の技だな。
左から右へ、右に達したら1ライン下がってまた左から右へ、と線を引いて画面を描いていた。
そのラインからラインの間で処理ができて、ちょうど画面の真ん中に来たところでスプライトバッファをクリアし、新しく1からスプライトを表示する。
とはいえすでに画面の真ん中までは描いてるから、そこまでが消えることはない。
1フレームの間でそんな芸当ができるのは1回程度。 伊藤「最近のゲームが、ツマラナイ、はまらない」
「そんなうわさが飛び交ているけど」
「それは、ソフトのせいじゃない」
「ハードに限界が無かったからだ」
「限界の中で、技術を競い合うから面白い」
コイ〜ン♪ 初歩的な質問で申し訳ないんだけど
ファミコンのスプライトって3色+透明なんだよね?
でも↓これって赤、青、肌色、黒+透明なんじゃないの?
http://i.imgur.com/J7HfpKS.png >>756
どうしても色が必要な場合はスプライトを重ねてる まずそのキャラは1つのスプライトではないな
ファミコンのスプライトは8x8または8x16だからいくつか並べて作ってある >>757
なるほど…
横並びで一定数超えたらその重ねたスプライトだけチラついたりすることもあるってことかな
それともそれだと不自然だから両方まとめてチラつくのか
でもどうせ重ねるならもう2色使えるんじゃ? スプライトオーバーで完全に消え去らない様にスプライトのプライオリティを入れ替えて表示させて
スプライトオーバーが起きた時はチラつくだけにとどめているとは思うけど、
自機キャラとか消えてはいけないキャラクターのプライオリティは優先順位を高くしたまま固定すればいい。
チラついてもさほど影響の出ないスプライトだけを点滅対象に。
多分どれか一色だけ他のキャラの色を拝借しているんだと思う。
自キャラのパレット、赤、青、肌色
他キャラのパレット、緑、白、黒
だったら、他キャラの「黒」だけ拝借してるような感じ。 >>761
ありがとさん
すげー分かりやすい
なるほど他キャラのパレットからの拝借かぁ
よく考えるもんだ
黒でキャラクターを縁取るだけで高級感がグッと増すんだよね ファミコンってBGは256キャラクタで、1キャラクタ当たり2枚のドットパターンを重ねて3色にしてる。
1枚目のパターンで1色目、2枚目のパターンで2色目、1,2が重なっているパターンで3色目。
文字や数字、残機表示などの1色しか使わないパターンが有る場合、2つを一つにまとめてキャラ登録して
パレットの色を変える事で1キャラ2役にしてパターン数を稼ぐなんて事もやってたりする。
パックランドのキャラROMを見た時に意味不明な形が登録してあって
何だろうと思ってパレットを変えた時にその事が分かって鳥肌がったったよ。
キャラクタに黒枠が付くだけで見やすくなるし、存在感が増すんだよね。 詳しそうな人がいるので質問したいんだけど…
ファミコンのアドベンチャーゲーム(あのグラフィックと、漢字なしのテキスト)を、パソコンで再現出来るツールってないかな?
ガキの頃作りたかったのをいま作りたいんだよね >>764
それするんだったら、エミュで実行して画面を取り込んだ方が早いなぁ。
文字パターンや背景キャラはROMに有るからそれを読み出せばいいけど、
それを並べるのはプログラムで行ってるから、そこから絵を作り出すとなると
色の分からない8x8ドットのピースを使いまわして作るジグソーパズルになっちゃう。
パレットの配色もプログラムを解析しない限り自分目で見て調整するしかないし。
文字キャラについてもエミュによっては
現在使われているキャラクタパターンを表示する機能があるからそれを取り込み。 >>766
>>767
ありがとう!調べてみます! ■ このスレッドは過去ログ倉庫に格納されています