あげちうのブロマガ

今も当時にいる人へ

2019/10/28 09:25 投稿

  • タグ:
  • レトロ
  • イース
  • プログラム

今も、世代と領域の伝説ではある。

「イース」PC-8801mk2以降用として誕生した、PCゲーム界のみ成らず、今も残るネームタイトルのこのゲームは、しかし、当時としては画期的な美しい画面を形成していた事でも有名で、当時のプログラマーは殆どが、”これ”を再現しようと頑張っていた、そんな時代があって、自分もまた、その時その一人だったりした訳だが。

FM-NEW-7で。

つい、ドラクエのスライムを前に呟きたくなる現実に、当時の自身は挑んで大破?した訳だけど、この執着とさえ言える物は、結局は自分も、何かの限度に達するまで諦める事には成らないまま…今に至っていて。不意に、「バットマン」それに残る妄執、失意、そう言うのに通じる何かだったろうか、それは少し思う。

とは言うが、今更ながら、”これ”への欲求、それがそこに有ったりする現実もまたある。
「98RM」と言う企画を書いた事がある、が。”これ”が裏側で具現化している?から…だろうか。古き良き「あの画面」それへの構築欲求、そう言うのが不意にあったりする。今の理解なら、当時は出来なかった”完全な重ね合わせ”も実現出来る?少し考える。

やはり問題が発生したので、ストリードを張る。



ストリード
プロデューサーシート
タイトル「PC98スプライトルーチン」仮
 概略 98RMの新しいルーチン

コンセプト「無理」

ハード的テーマ「スプライトのある画面」肯定否定
 PC98で、スプライトのある画面を

ソフト的テーマ「ファミコン」否定肯定
 まあ、ファミコンくらいは何とか?

目的 98RMのソフト資産の充実
それは無い ゲームが創れない

ディレクターノート

「重ね合わせ画面の構築」

マップの位置に変化があった場所へ、フラグ。

それはスクロールの際にも、キャラクタ表示の際にも適用。
その後、そのフラグがあるポイントのみを累積作画する、訳だが。

当時の理解で行くと、その為にはキャラクタもシーンの一枚的に考えねばならなかった。要するに、重ね合わせがBG>キャラ1>2>3>4>5>6とか、そんな。
一枚ずつ全部、「その場所描いてる?」って、聞かなきゃいけない訳だ。
>あーでも、チップ単位なら話も違うのか。「自分は何処に居る?」で良いから。
キャラクタ数最大128個、位置情報&表示内容として2バイト、とかそういう?

なるほなるほ。


そう言えばまだ、PC98は生きてたねぇw。
まだこれ、使える部分は有るか。

表示画面を、必要なチップ数分、確保する。
※16*16チップなら、40*25で1000バイトか。
それとは別に、「スプライトチップ」の表示場所を確保、1チップ2バイト位。
※その2バイトに、表示内容、表示位置を盛り込む。

まずBGの書き換えを検出し、表示画面にフラグする。
更に、表示キャラの書き換えを検出し、フラグする。
フラグが終ったら、”フラグした部分だけ”書き換えを行う。
無しならスルー。
 BGのみなら、BGだけを高速に。
 キャラ有りなら、まずBGをメモリに作画、”その上に”順に「同じアドレス」にあるキャラを検出し、重ね合わせて、終了したら画面に転送(キャラごとに全てのアドレスを走査するから多少時間が)。
 それを、画面全体に行う。

2画面切り替え有るから、この辺も直描きの方が速い?のかな。

その上で、「表示キャラ」と「実際のマップ」は分けて考えないと行けない訳だが。
まずこの表示システムが、果たして実用性能持つか?だよな。


2面スクロールスプライト有り、の構築を考える。

ワークメモリ
BG面(40*25)、フラグ面(40*25)
スプライト面(16*16チップのナンバー、表示アドレス)、128面。
表示キャラデータ
BGチップ(256個)、キャラチップ(256個)。

手順。
BG、キャラのチップデータを用意。
BG面クリア。
スプライト面クリア。
フラグ面クリア。

ルーチン
BGチップ表示ルーチン、キャラチップ表示ルーチン。

「BGチップ表示ルーチン」は、指定されたチップを、BG画面のどれに何で描くか?を指定する。この場合、「BG作画」がフラグされる。
「キャラチップ表示ルーチン」は指定されたチップを、スプライト面のどれへ、どのアドレスで描くか?を指定する。この場合、「キャラ作画」がフラグされる。
この結果、フラグ面のフラグが描き替えられる。このアドレスは描き替えられました、BGかキャラ有りか、ですが書かれる。

表示ルーチン
フラグ形成が終ってこれを起動すると、画面書き換え作画を行う。
フラグ面の内容を見つつ、
「BG作画」のフラグが立ってたら、その場に描くだろうBGを作画。
「キャラ作画」のフラグが立ってたら、更にその上に、”そのアドレスに居る”キャラを順に探して全部描く。
”これ”を、書き換えがフラグされた場所で、全部行う訳だ。

ベースとしては”それだけ”で、まず第一段階。

この状態だと、BG作画ルーチンで画面の任意の場所のBGを描き替え、キャラ作画ルーチンで任意の場所に任意のキャラを描く事が出来る。
しかし?今の時点では


フラグ面に、
「BGのみ」と有れば、BG表示だけで次に行く。
「キャラも」と有れば、BG描いて、その場に重なるだろうキャラを全部描く。


ここから今後、キャラクタブロック表示ルーチン、と言うのが始まる訳だが。
BGかキャラか?或いはキャラだけBGとかいろいろ・・・

何とか、キャラだけでもドット単位で動けないか。

キャラクタが、16*16だが、32*32をワークとして、表示時にズラしたイメージを置く?
まあだから、キャラクタに関してはドット単位での駆動が出来ないか。

だから、フラグ面に、4チップ分のフラグを立てる。
描きこむ時に、表示位置により、ずらした奴を描きこむ。

end


はい。

ともかく”これ”が具現化し得る時、PC-98であっても「ちらつかないドット単位のスプライト表現」それが可能になる、として。後半理解にかなり怪しい所がある、それ以上考えてないのだけど、しかし、想定以上の能力を持っても、良くて「PC-98の画面でファミコンクオリティが」その辺が限度、ではあるまいか。”それ”をここに投入する、それは何を意味するのだろう?

確かに、それまで言われていた不可能が可能になった瞬間ではある、しかし。


"こんな感じ"なんですけど。

その意味に挑む、理由とは。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事