Goldensteps

個人ブログです 意義はないです カテゴリー「長文読み物」がオススメですよ

『EXAPUNKS』PDFマニュアル2冊目の簡易訳~11pまで

本エントリでは2冊目(青い方)の11ページ目まで進行します。

◆HARDWARE HACKS TEC REDSHIFT

TEC Redshiftは、魅力的な3Dモードを搭載したハンドヘルド型カートリッジベースのゲーム、またはTECがゲームビジネスを終了するための高価なフロップとして知られています。しかし、Redshiftはそれ以上のものです。市場に出てから5年が経った今日においては、どこかのバーゲン売り場やガレージセールスで簡単に見つけられるハッキング可能なデバイスです。

面白い事実:私たちの編集長Ghastは、かつてゲームスタジオでプログラマーとして雇われて活躍していました。そこでRedshiftアーキテクチャーと制限を日常的に克服しました。 (それはたぶん彼がこの記事を自分で書くことを望まない理由です。)

幸運にも、Redshiftのゲームを作ってしまうと、実際にはかなり楽しいものになります。Redshiftがプロや愛好家のゲーム開発者に提供するすべてのものへ、少し旋風を巻き起こしてみましょう。

◆フレーム同期
Redshiftについての最初の重要なことは、「待つ」方法です。あなたが以前にゲーム開発者をやったことがあれば、これはおそらく慣れないコンセプトでしょう。RedshiftのVMには、コアEXAプログラミング標準の一部ではない特別な「WAIT」命令が含まれています。「WAIT」命令を実行すると、そのEXAは次のフレーム同期まで一時停止します。これは1秒間に30回(33ミリ秒ごとに)発生します。これにより、複雑なゲームは、ゲームをするために必要な命令の数にかかわらず、一定の速度で簡単に実行できます。

RedshiftとEXAsを同期させないと、実際にプレイするには速すぎるゲームになります。それはそれとして、面白いのかもしれません……

◆データファイル
RedshiftのVMには、別の非標準命令DATAのサポートも含まれています。"DATA"命令は実行されず(実際はNOTEのように見える)、Redshiftの初期化時にEXAが保持する初期ファイルを指定するために使用されます。"DATA"命令の後には、スペースで区切られた任意の数の数値を続けることができます。すべての値を1行に収めることができない場合は、残りの "DATA"命令を使用して残りのデータを指定することができます。

◆グラフィックシステム
レッドシフトは120x100の白黒スクリーンを備えています。3Dモードでは、白いピクセルを赤と青のバージョンに分けることができ、備え付けの3Dメガネで見たときに画面の上または下に座るように見えます。 これは本質的に、他のハンドヘルドコンソールがカラーディスプレイに切り替わったときのRedshiftの大きなセールスポイントでした。残念ながら、Redshiftの3Dモードは悪名高い頭痛の種ですので、長い間使用しないでください。Redshiftの広告とマニュアルはすべて15分ごとに休憩を取るよう提案しました。私は5分ごとに休憩を取ると言うでしょう。または、まったく使用しないことです……

各EXAには、コードを書くときに編集できる10×10の白黒スプライトがあります。スプライトは、GXおよびGYレジスタに数値を書き込むことによって画面上に配置できます。GXはスプライトを画面の左端からオフセットし、GYはスプライトを画面の上端からオフセットします。

Redshiftの3Dモードでプレイする必要がある場合は、GZレジスタに値を書き込むことでスプライトの認識深度を変更できます(画面から一番手前に遠い場合は-9、画面の最も奥へ遠い場合は9)。

GPレジスタに3桁の値を書き込むことで、実行時にスプライトを変更することができます。 最初の数字は操作(0 =オフ、1 =オン、2 =トグル)を示し、2番目と3番目の数字は変更するピクセルを示します(左上隅からXとY)。 したがって、190は右上のピクセルをオンにし、209は左下のピクセルをトグルします。

◆ビルトインフォント
グラフィックを作る前に、テキストの初歩的なサポートもあります!300の値をGPレジスタに書き込むと、スプライト全体が2番目と3番目の数字に基づいてRedshiftの組み込みフォントの文字に設定されます。したがって、324はスプライトを文字24→Xに変更します。

コリジョンシステム
スプライトは互いに重なり合うことができ、スプライトは画面上の同じ位置に白いピクセルを持つように定義されます。これが起こると、各EXAのCI(衝突入力)レジスタは、衝突しているEXAのCO(衝突出力)レジスタの値に設定されます。複数のスプライトがスプライトとオーバーラップしている場合、より大きなCO値が勝ちます。

コリジョンの動作は、3Dモードでは2Dモードと同じで、GZレジスタの値は無視されます。 あなたがZ次元で衝突差別をしたいのであれば、自分で実装する必要があります。

◆オーディオシステム
レッドシフトには、2つの方形波(#SQR0 /#SQR1)、1つの三角波(#TRI0)、および1つのノイズチャネル(#NSE0)の4つのオーディオチャネルがあります。
正方形または三角波チャネルに数値を書き込むと、値0を書き込むことによって停止するまで、連続してその音符を再生します。
ノイズチャンネルに数値を書き込むことでピッチが制御されます。 値が小さいほど低周波ノイズが発生し、値0の場合は完全にオフになります。

◆インプットシステム
#PADXレジスタはDパッドの水平状態を示します(-1 =左、0 =中央、1 =右)。#PADYレジスタはDパッドの垂直状態を示します(-1 =上、0 =中央、1 =下)。
#PADBレジスタは、X、Y、Z、およびスタートボタンの状態を示します。Xボタンが押されていると、1桁は1になります。それ以外の場合は0になります。Yボタンは同様に10桁、Zボタンは100桁、開始ボタンは1000桁で表示されます。
#EN3Dレジスタは、レッドシフトが3Dモード(1 =オン、0 =オフ)であるかどうかを示します。

◆結びに
これは主要なRedshiftシステムのためのものです。最終的に、あなたが作るものは、あなたの友人と共有することを忘れないでください!彼らの生命がそれに依存している場合、TECはゲームコンソールを成功させることができませんでしたが、少なくとも災害からの落ち込みを楽しむことができます。