ハードウェアスクロール (1) [コメントする]

ハードウェアスクロール


スレッド作成 : paropuseさん
 (1997/11/27 16:38:29)

 ハードスクロールは、77AVと言わずとも、FM-7にも付いてました。ただ、重ね合わせも無いのにハードスクロールがあっても、そんなに役には立たないことが多いです。
 1画面しか無い機種でハードスクロール使っても、全画面が一度に動いてしまいますからあんまり価値がありませんが、文字画面を持たないFM-7だと、BASICでLIST表示する程度でも極めて大きな負荷になります。LISTなら、全画面が1度に動いてしまっても問題無いのでコイツのおかげで、文字を持ってる機種よりもLIST表示が速かったのです。<br>
 しかし77AVでは、64色2画面でハードスクロールが使えたりしますので、なかなか便利でした。8ビット機版のスペハリ並べてみると、各機種がどの程度の性能持っていたかがよくわかります。77AVのは、非力ながら容易にスペハリで有ると気づきますが、X1や88のはなんのゲームだか一目で気づくことは無いでしょう。


Saiey さんのコメント
 (1997/11/27 16:38:46)

 FM-7にハードウェアスクロール機能があったなんて・・・。MSX2かX68あたりがパソコンの最初かと思ってました。


みれい さんのコメント
 (1997/11/27 16:39:09)

 いきなりマイナーな機種の話に振りますが、ハードウェアスクロールはFP-1100にもあります。FP-1100はFM-8や初代X1と同世代のマシンです。
 CPUがZ80でありながら、かなりFM-8を真似しており、サブCPUも持っています。その他にも、PCGを持ち、400ライン表示ができ、BIOSコールを完備し、倍々精度演算ができるという味な機械です。
 加えて、FP-1100は劇安でした。それ以前は、PC-6001などの廉価パソコンを除いては、軒並み20万円ぐらいでしたが、FP-1100のモノクロ版であるFP-1000は、なんと定価10万円を切っていました!
 なぜこの名機のことを誰も語らないのでしょう? ユーザー少ないからか...


Saiey さんのコメント
 (1997/11/27 16:39:26)

 う〜ん。初めてハードウェアスクロール機能が付いたパソコンって、どれなんだろう?


パソコンは知らないけど・・・

あきよし さんのコメント
 (1998/1/9 14:05:33)

ハードウェアスクロール機能は、
米国 ATARI 社が考案したものです。
たしか、1979 年くらいの考案。

ファミコンが特許を侵害しているといって
裁判になりましたが、たしか和解したはず。


ただ、どこまでをハードスクロールと呼ぶかが問題ですね。

私としては「VRAM の捜査開始位置を 1dot 単位で指定できる構造」をそう呼びたいのですが・・・

#そうでないと2画面の切り替えも
 ハードスクロールになってしまう (^^;


Saiey さんのコメント
 (1998/1/9 15:41:39)

アタリが特許を持ってるんですかぁ。

ハードウェアスクロールの定義は、私もあきよしさんの説に賛成です。
でもそういえば、FM-TOWNSはたしか「0.5dotスクロール」が出来たんですよね。1dot単位という言い方じゃだめ?(^^;


88シリーズでは

水の魔導師ニャー さんのコメント
 (1998/1/17 16:10:54 -
E-Mail)

 88VAがはじめてハードウェアスクロールを兼ね備えた機械でしたね
それに加えて画面の重ね合わせ、スプライト等があったのでBASICでも簡単に
シューティングゲームが作れるマシンでした・・・(って、まだ作ってる
んですが(^^;;;)


0.5dot 単位スクロール

あきよし さんのコメント
 (1998/1/19 11:22:54)

Towns ユーザーの人に聞いた話・・・

X68k でもそうなのですが、解像度256dot モードなどでは、同じ信号を繰り返して送ることで dot を大きくしています。

#周波数的には 512 dot モードなのです

Towns では、この信号の「何回繰り返したか」を制御できたので、画面の端に描かれる 1dot のサイズを、半分にすることが出来たそうです。

画面モードとしてのdot の大きさの半分を出力で制御できるため、見かけのスクロールは 0.5dot 単位となるわけです。


Saiey さんのコメント
 (1998/1/19 11:24:52)

88VAのBASICって、シューティングが作れるくらい高速に動くんですか。すごいですねぇ。
X68000のX-BASICは、それはそれは遅くて・・・(T-T)。
TOWNSもハードウェアスクロールを持ってるのに、BASICではサポートしてないんですよねぇ。たしか。


Saiey さんのコメント
 (1998/1/19 11:28:57)

おっとニアミス。

なるほど。0.5をどうやって制御してるのかっていうのが、当時から結構疑問だったんです。
でもそうすると、スプライトの位置とかも、0.5dot単位で制御できたってことですかね?でないと、がたつきますよね?

ん?背景だけなら、関係ないのか?


ソフトウェア0.3dotスクロール

mio さんのコメント
 (1998/1/20 18:14:01 -
E-Mail)

 ディスプレイがRGB並んでいるのをよいことに、左の色を白→
マゼンタ→青、右の色を緑→黄→白と順々に書きかえると、0.3dot
スクロールが…もちろんトウフでしかできない技です(笑)。

---------------------------------------------
 Saieyさん、X-BASICやっていたのですか。私は知人がやって
いるのをみてやめました。外部コールを自作できたりして面白い
とは思ったのですが、すぐさまXC、続いてGNU-C、さらにアセン
ブラへ移行してしまったので、必要性が…。


スプライトとスクロールは別です

あきよし さんのコメント
 (1998/1/20 19:21:41)

MSX2 の set adjust 横スクロールとは違うので、0.5dotスクロールでも大丈夫です(笑)

とはいっても、Townsのスプライトって、グラフィック画面なんですよね。
しかも、画面が320x240なのに、スプライトは256x256 の領域。
#もっと厳密に言うと、256x512で、表示位置を 0line からと 256 line からで切り替えられる

88VA の BASIC も、速度はそれほど速くありませんでしたよ。
あ、X-BASIC よりは速いかな?(笑)

X-BASIC でゲーム作って売りましたケド<私 (^^;
もっとも、BASIC to C Converter を使っていました。


水の魔導師にゃー さんのコメント
 (1998/1/20 19:45:07 -
E-Mail)

んー、VAのBASICがめちゃくちゃ速く感じるのはやっぱり、PC-8801MC
のBASICから移行して来たからかなぁ(^^;;
VAは16色で320x200という画面モードで1024x512 というフレームバッファー
を作ってハードウェアスクロールできたんですが

ROLL 1,1 と INT &H8F(AX=&H400,BX=1,CX=1,DX=1) (両方 BASICでSCROLL)

はスピードが変わらないんですよねぇ(^^;;


Saiey さんのコメント
 (1998/1/21 09:29:43)

X68を買った当時、まだBASICerだったので、とりあえずX-BASICをやって、XC->GCCって感じです。アセンブラは本だけ買って、結局68000ではやってなかったりします。Cが楽しかったので。(^^)

TOWNSの「解像度よりもスプライトの領域が狭い」って仕様、初めて知ったとき「タコだなぁ」って思いました。最初は「何でTOWNSのゲームってみんな縦画面なんだろう?」って思ってましたから。
さらに、スプライトを使うとVRAM半分使うから、グラフィック画面が1枚になっちゃうんですよねぇ。

ハードウェアスクロールの機能では、X68kが最高かな?パソコンでは。


重ねあわせ数は X68k が最高ですね

あきよし さんのコメント
 (1998/1/21 09:47:02)

おそらく、ですけどね。
グラフィック4枚+BG面2枚+テキスト面(水平型グラフィック)+スプライト
ですからねぇ・・・

えーっと、最近知っている限りでは、セガサターンがこの性能に近づいています。
しかし、業界の流れとしては、スクロールはもう捨ててポリゴンに一本化する方向に進んでいますから、X68kの複雑な画面構成を超える機械は出ないのではないかと思います。

#3Dポリゴンを「座標変換なし」で表示すればスプライトですし、それをたくさん敷き詰めればスクロールのようになります。
 CPUパワーがあるからこそ出来る力技 (^^;


私が68000アセンブラに進んだワケ

mio さんのコメント
 (1998/1/21 11:08:42 -
E-Mail)

 シューティングを作っていたのですが、自分の弾を5発×3回分発射
できるようにしたところ処理落ちがでてきたので、アセンブラでルーチン
組み直し…で、どうせだからフルアセンブラで、となったのです。
既にPC88でフルアセンブラで作っていたのですが未完成でした。

 と話題がハズレすぎてますね。すみません。


サターン

Saiey さんのコメント
 (1998/1/21 12:18:13)

あ、サターンには抜かされてるかと思ってましたけど、そーでもないんですか。
でもやっぱり時代は「ポリゴン+力技」って感じですね。PSやSSはスプライトでポリゴンしてるんでしたっけ?VRAMにごりごり書き込むよりも、こっちのが良いのかな?

---

私がCが好きなのは、簡単なことは簡単に出来て、でもちゃんとハードを直接たたいたりできるってとこですかねぇ。
そういう意味で、Javaはもう一歩、はまれないです。

あぁ。脱線に脱線・・・。(^^;


最近の画面表示傾向

あきよし さんのコメント
 (1998/1/21 14:10:19)

スプライトといっても、VRAMにごりごり描いているんですよ :-)

旧来の(X68k や MSXの)スプライトでは、走査線がスプライトにかかったその瞬間に処理を行っていたため、メモリは少なくてすみますが時間的な余裕が無く、高度な処理は出来ませんでした。

しかし、最近の(SSやPS 、Tonwsもこれ)スプライトは、グラフィック画面を2枚用意して、ハードウェアでごりごり描いているのです。
これならば時間は 1/60秒もあるので、拡大縮小回転変形なんでも出来ます。

なお、一般に「変形スプライト」と呼ばれるものと「テクスチャマップドポリゴン」と呼ばれるものは同一です。


VRAMごりごり

Saiey さんのコメント
 (1998/1/21 15:03:11)

あら。そーだったんですか。スプライトってMSXやX68kのしか触ったことがなかったので、走査線うんぬんのものを想像してました。

ってことは、最近のは「横何枚」制限はみんなないんですね?

今話題(?)のPC-88VAはどっちタイプなんでしょう?


VA Sprite

水の魔導師にゃー さんのコメント
 (1998/1/21 16:35:12 -
E-Mail)

VAのSPRITEはテキスト画面を使います(^^;
でいくつ重ねようが構わないんですが、横ドットの合計が
256ドットくらいという制限があります(^-^=

ちなみに画面構成は

スプライト画面 x 32枚 + テキスト画面 + グラフィック x 2
+バックドロップ画面

です、ちにゃみにテキストとスプライトの間にグラフィックを
はさんだり、グラフィックの間にスプライトいれたりもできます

使えるスプライトサイズは モノクロで 32*n x 4*m (n,m=1-)
16色で8*n x 4*m (n,m=1-)です


すでに話題がスクロールではないが

あきよし さんのコメント
 (1998/1/21 19:36:47)

最近の機械では、「横何枚」制限はありませんが、画面の塗りつぶし能力の問題で、「画面中に何枚以下」および、「塗りつぶし面積が何ピクセル以下」という制限はあります。
この制限以上の数を出そうとすると、それは表示されなくなります。(昔のマシンで、横4枚並べると消えたのと同じこと)

これがいわゆる「画面にポリゴンが出過ぎるとちらつく」という現象です。

---

え? スプライトってテキスト画面なんですか?
グラフィックをテキスト画面に表示できるわけはないから、「同じ VRAM領域を使用する」という意味ですよね。

友達が VA でゲームを作っているときに、巨大なキャラクターを並べると・・・消えてくれるならまだしも、画面表示が崩れるんですよね。VAのスプライトって。


Saiey さんのコメント
 (1998/1/22 09:27:24)

バックドロップ画面・・・?なんですか、これ?
プロレスゲーム専用の画面モードとか。(^^;

あぁ。ポリゴンがちらつくのって、重ね合わせの・・・えっと、なんて言ったら良いんだ?・・・その優先順位の処理をはしょってるから、という理由だけかと思ってました。計算能力よりも、描画能力の限界が先に来ることがあるわけですね。


バックドロップ面

あきよし さんのコメント
 (1998/1/22 10:24:15)

一番後ろにある、通常真っ黒の面のことでは?

真っ黒固定ならとくに呼び名はないですが、色が着けられたりすると「面」として定義されることが多いです。

ポリゴンのちらつきは・・・重ねあわせの処理の問題もありますけど、「消えたり現れたり」の場合は描画能力の限界であることが多いです。
計算能力が限界にくると、画面がスローモーションになります。


画面の重ね合わせ

よしむう さんのコメント
 (1998/1/22 12:42:06)

VAはX68Kほど画面の重ねあわせ機能が強力では有りませんが、そいつを補おうといろいろと知恵を絞ったもんです。
変な技(?)としては、テキスト画面を見かけ上2画面に見せる、なんてことをやってました。VAのテキスト画面は重ねあわせの優先度をパレットによって2グループに分ける事が出来ました。(っていうかバグなのかな?)
で、基本的にテキスト画面は1枚なのですが、その中のある部分(あるパレットの部分)はグラフィックの手前に、その他の部分はグラフィックの奥に表示する、なんて事が出来ました。
この技はスプライトに対しても使う事が出来たので、グラフィックの向こうと手前を同時にスプライトが流れて行く、なんて事がわりと簡単に出来ました。

・・・ハードウェアスクロールと殆ど関係ない話ですね(^^;;;


Saiey さんのコメント
 (1998/1/22 15:34:08)

バックドロップ・・・背景に色が付けられるんですか。なるほど。でも、グラフィックを前面に置くって考えたら、あまり意味がないような・・・。


で、どんどん話がずれちゃいますけど、VAのテキストって、文字しか表示できないやつですか?それとも、PCGみたいにキャラクタを自由に定義できるもの?


VA Sprite ][

水の魔導師にゃー さんのコメント
 (1998/1/22 20:41:48 -
E-Mail)

[あきよし さん]

そうですね、TEXT RAM と同じバンクを使うって意味です
大きなスプライトを使うと画面が崩れるので、テキストを0クリアしてやります。
つまり、スプライトの表示できる横幅は同時に表示されているテキストの
影響も受けていたと言う(^^;;

バックグラウンド画面は最終画面の手前にあるやつで65536色から1色選べたような(^^;
(4096かも)

[Saiey さん]

前の画面にグラフィックがあっても、透明色をテキスト、すぷライト、
グラフィック1、2に設定できたので意味はあるにはあるんです
VAのテキストはユーザー定義文字を使って1色スプライトとして
なら140個程度並べて遊べますけど(^^;;
まぁ、リアルタイムに書き換えてやればPCGみたいですね(^^;;


VA Text

Saiey さんのコメント
 (1998/1/23 14:20:33)

VAのスプライトとTEXTって同じところを使うんですよね?なら、スプライトとTEXTは共存できないんですか?

半分使う??


VA TEXT/Sprite

水の魔導師にゃー さんのコメント
 (1998/1/23 18:19:15 -
E-Mail)

[Saiey さん]

んー、ちょっとちがいまふ

A0000----------------------------------
TEXT
Axxxx----------------------------------
Sprite Aria 1
A7fe0----------------------------------
Sprite Control Aria
A8000----------------------------------
TEXT Attribute
Ayyyy----------------------------------
Sprite Aria 2
B0000----------------------------------
Gvram
E0000----------------------------------

って感じになっています

そういえば、VAはテキストにもスクロール機能
が付いていますから、たてよこに自在にスクロールができます(笑)


スレッドの原点に帰って・・・

あきよし さんのコメント
 (1998/1/23 18:50:50)

テキストのスクロールで思い出したのですが、98 のスムーススクロール可能テキスト、たしか上下に 16 dot くらいまでスクロール可能で、そこまで移動させた時点でソフトで文字単位のスクロールを行い、ハードウェアスクロール位置をもとに戻す、という繰り返しで動いていたはずです。
あれって、スクロール機能を持っているということになるのでしょうか?

#個人的にはならないと思う。


98のスクロール

mio さんのコメント
 (1998/1/23 19:33:41 -
E-Mail)

 GDCの機能ですね。スクロールというよりズラすことができると
いう程度のものですが、うまく組み合わせていたというわけです。

 しかし今GDCを使うソフトなんてあるのだろうか(^-^;


Saiey さんのコメント
 (1998/1/23 20:42:49)

その「ずらし」をスクロール機能というなら、MSXのset adjustもスクロール機能になってしまいますね。
やっぱりせめて「筒」になってないと。と思います。

そーいえばX68kのTEXTは、確か「筒」なんですよね。VAは縦横自在ってことは、「球」ですね。
#ま、まけた・・・(^^;


テキストスクロール

水の魔導師にゃー さんのコメント
 (1998/1/24 12:56:45)

VAのテキストスクロールも一応ハードウェアスクロールに
なるのかな(^^=ちにゃみに、これもTVRAM上にある
SPRITEコントローラメモリI/Oにアクセスすることによって
画面分割したり表示開始位置を指定したり画面サイズを
指定したりできまふ。
なんか、ほとんどグラフィック画面と変わらないですね(笑)


スクロール

ma3 さんのコメント
 (1998/3/8 20:22:33)

77AVのそれって、プレーンドアクセス4096色モード時のBank0とBank1で何故か別々に指定できるんですよね?(^^;)
横スクロールもできるんでしたっけ?

X1turboだと、スーパーインポーズ時に限ってコンピュータ画面のスクロールなるものができたようです。
ただ、スクロールする方向と速度を指定するだけで、表示位置の直接指定はできないようですが。

参考:FM-Technow/X1 Technow(BNN)

MSX2のスクロールは縦方向のみを0〜255で指定するものでした。
MSX2+は、横位置を0〜7ドットずらすレジスタと、8ドットごとにずらすレジスタがあって...
ようするに横8ドットごとのスクロール機能だったりします。


ハードウェアスクロール (1)」へ続く。


[HOME] [TOP] [HELP] [FIND]

Mie-BBS v2.14 by Saiey