その他
Commodore 64: Mercenary
Commodore 64: Mercenary (gamesexplained.com)
要約
Commodore 64用ゲーム「Mercenary」の技術的な解説記事です。ゲームは、メモリ使用量を抑えるために一度に一つの建物しかレンダリングせず、プレイヤーの現在地に基づいて動的にロードします。また、バグの発見や、都市の外にある隠された場所、そして常に飛行している謎の宇宙船についても詳細に説明されています。
全文翻訳
01 · 線で描かれた都市
飛びましょう:Targの都市を、一つの建物を一度に
レンダリングを制御するために、ゲームは一度に一つの建物しかメモリに保持しません。あなたが現在いる四角形が、どの建物がアクティブであるかを決定します。
すべての建物をレンダリングする
ビューをクリックし、← → で回転、↓ ↑ で機首上げ下げ、W S で前後、R F で昇降、Q E でロールします。
地上で移動する
飛行する
ロール ⟲
機首上げ
ロール ⟳
◀ 回転
機首下げ
回転 ▶
前方
上昇
後方
レベル
下降
北を向く
速度 160 × 136 マルチカラーピクセル、ゲームのビューコードを持つページによって描画され、ルーチンごとにポートされています。バイト単位で正確であることが徹底的に検証されています。あなたのXまたはYの高バイトが変更されたとき($94FE-$952F)、その四角形の建物はロードされ、あなたが十分に低い場合(高さが65536未満)のみ描画されます。したがって、建物はあなたがその四角形に入るときにのみ「ポップイン」します。より高い場所からは、道路が見えます。これらは高さ2048から、接続されている四角形の中央を結ぶ線として描画されます。高さ$200000では、固定された13本の道路の画像がこれに取って代わります($902A)。
02 · バグ
バグ:開始地点の草の上に立ち、Eを押すとColony Craftに入ります。
あなたは08-08に不時着し、Colony Craftは高度64,997であなたの真上に浮かんでいます。ここには地上にリフトがありません。しかし、目に見えない草のパッチ(一辺1,024ユニット、着陸地点から約14秒歩いたところ)は、Colony CraftのデッキのリフトであるかのようにEキーに応答します。'下'への乗り物はColony Craftの格納庫に入り、もう一度Eを押すとデッキに上がります!
歩いて移動する
クリア
どこかをクリックして立ち、Eを押します。
上からの08-08の四角形:滑走路のマーク、回転するピラミッド、Dominion Dart。
グリッドの1ステップは256ユニット、四角形全体の1/256です。
Colony Craftは08-08の上に座っているので、そのデッキと下の草は同じXとYを共有します。高さだけがそれらを区別します。
そのリフトは、$B4B6/$B4BEにあるリフト四角形のテーブルのエントリ8であり、Eキーのテストは四角形とXおよびYの中間バイトをチェックします。高さは読み取りません。したがって、デッキのリフトの下のパッチは、リフトとまったく同じように機能します。
テスト
デッキの上
地上で
開始
Eキーのテストを、Colony Craftのデッキとそれの下の草で読み取られた値とともに、命令グループごとに示します。
'下'への乗り物は、Colony Craftの格納庫である部屋8で終わります。部屋8から再びエレベーターで上がるのは期待通りに機能します:それは部屋から始まり、表面側に到達すると、$A312があなたの高さに$40FF00を加算するため、デッキで終わります。地下には独自の高さはありません:部屋は別々の箱であり、都市のどの地点の下にも部屋はありません。
草の上でのE:部屋8、Colony Craftの格納庫に下ります。
再びE:デッキの上に、ALT 64997。
パッドから歩き出すと、すべて下まで落下します。予想ほどゲームを壊しません!
格納庫8の3つのドアはすべてロックされており、オブジェクト23です。したがって、ゲーム開始時、格納庫とデッキが到達できるすべてです。
あなたの唯一の選択肢は、「エクスプレスエレベーター」で出ることです。つまり、Colony Craftの屋根から歩き出すことです。
自分で試してみてください
オープニングを最後まで再生させてください。Bensonが「CRASH LANDED ON TARG」を終えるまで何も触らないでください。あなたは南を向いています。
右に3/8回転して、北西を向いてください。COMPダイヤルは西を通過するときに赤くなり、北西は赤い四半分の真ん中です。
約14秒、約100歩前進し、停止します。Eを押します。
何も起こらない場合は、パッチから外れています。パッチは約2.5秒歩いた距離です。
パッチ上で、北西を向いています。
画面上には何もマークされていません。
確実な方法は、手動でそこに配置することです。
VICEモニターを開き、> 73 72 と入力してX座標を設定し、次に > 79 72 と入力してY座標を設定し、xを押して再開します。これにより、08-08のパッチの中央に正確に配置されます。その後、Eを押します。
03 · 都市の外
エキゾチックな目的地:都市の外にあるすべての場所
Targの都市は一辺16四角形、世界は256です。ゲームは荒野に4つのものを配置します:格納庫への2つのリフト、ピラミッド、マスト。
世界全体を上から、北を上にして、スケールで表示:一辺256四角形、各65,536ユニット。
四角形は、LOC読み出しが番号を付けるように、-128から127まで番号が付けられ、Xは東に増加し、Yは南に増加します。
破線の中のLOCは四角形を示し、負数は逆順の数字です。それ以降、LOCは**と表示され、道路は描画されません($B64C)。
場所をクリックしてテーブルで見つけてください。
場所
LOC
X, Y
着陸地点から
何があるか
歩行時間は、歩行の測定ペース、約80ユニットの100歩を14秒で、着陸地点08-08からの直線距離で測定されます。
都市の外では建物は決して描画されません:ゲームは両方の軸で0から15までの四角形のみをロードします($952B)。したがって、これらの2つのリフトはオブジェクト、61と62であり、それぞれが1,024ユニット四方の4つの積み重ねられた四角形のケージで、Eキーが機能するパッチの上に立っています。XとYの中間バイトは$70から$73です($B40C)。それらの下には、それぞれ独自の格納庫コンプレックスがあります。
格納庫6には3つの部屋があります。格納庫7には7つの部屋があり、オブジェクト3のジェット機がそこで始まります。
それらの3つのモデルは、バイト($2800/$2840)から、側面から見たもので、それぞれ独自のスケールです:モデルの座標は16ユニットステップの符号付きバイトです。これら3つのオブジェクトはすべて固定されています($29C0のビット4)。したがって、Tは台所の流し台が運ばれている間のみ($980B)それらを取ります。
ピラミッドはオブジェクト56です。運ばれているとき、Dキーは空中でオブジェクトをドロップでき、オブジェクトはあなたの高さに留まります($98FE)。
マストはオブジェクト50です。印刷される名前はなく、コード内のどこにもアドレスで参照されていません。何のためにあるのかは不明です。
04 · 他のクラフト
秘密:義兄の新しい船が都市をALT 500で周回し続けています。
ゲーム開始と同時に、一つのクラフトが自律的に飛行しています。それはPalyar司令官の義兄のもので、Dartと同じ形状をしており、都市の西端を南に飛行し、高度32,769で、南端から北へラップアラウンドします。
さらに2つのクラフトは、何かが呼び出すときだけ現れます:攻撃船とあなたが雇う船。
着陸してからの時間
0.0分
着陸地点で過ごした時間
Dartで
パッドの上で
都市上空を飛行
都市外を飛行
Colony Craftのデッキで
再生、40倍速
船のステップ($85C5):1回の表面パスでYに256が加算され、四角形の1/256南に進み、四角形の番号は15とANDされ、行15の後に0行が来ます。1回のラップは4,096パスです。
各パスの描画にかかる時間、つまりどこにいるかによって、ラップにかかる時間は異なります。
シミュレータで各場所から1ラップ全体で測定されたフレーム。
地下ではステップは実行されず、船は待機します。
船は、それから2,600ユニット西、1,200ユニット後ろ、あなたの高さのすぐ上に浮かぶDartから見えます。
ゲームコードはこのフレームをシミュレータで描画しました。
着陸地点から、それに向きを変えて:地平線の上の一つのピクセルは船で、00-09の上空530,623ユニット離れています。左側の白い楔は、あなたが立っている残骸の一部です。
船はオブジェクト0で、Dartのモデル($3B25)を持っています。
そのXは常に$006F41、つまり00列の中心線から西に4,287ユニット、高さは常に32,769ユニットで、パネルにはALT 00500と表示されます。移動するのはYだけです。
あなたが着陸するとき、それは00-09の上にあります。
都市のどこからでも見ることができます。
オブジェクトルーチン($9728)は、各軸で65,536ユニット以内でのみ完全なモデルを描画します。それより遠くでは一つのピクセルをプロットし、あなたの上にあるオブジェクトに対しては($9787)どの距離でもそれを実行します。
地上で、00列に向きを変えて、地平線の上にあるピクセルを探してください。
再生タブで、着陸直後、少しだけ左に(4分の1回転未満)回してください:それはビューの中央、地平線の上にあります。
上のマップは、それ以来どこまで進んだかを示しています。
誰もそれを飛ばすことはできません。
あなたがそれから512ユニット以内に地上にいれば($985D)、Bはクラフトに乗り込みますが、高度32,769のどこにも立つことはできません。
しかし、それは独自の動きの記録、記録0を持っており、ゲーム内で最速です:最高速度11,475で、SPEED読み出しは**75と表示されます。
あなたが飛ばせる最速のクラフトは、