今も当時にいる人へ
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

今も当時にいる人へ

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の画面でファミコンクオリティが」その辺が限度、ではあるまいか。”それ”をここに投入する、それは何を意味するのだろう?

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


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

    その意味に挑む、理由とは。
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。