
2026/09/27 4:00
C64 MERCENARY(1985):ゲーム開始時に発生する新たなバグによる exploits
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
本文は、「Targ」というゲームの詳細な技術的解剖を提供し、対数に基づく飛行計算、異なる機体バージョン固有の高度制限、厳格な高度制約(<65536)およびメモリ管理戦略(例:ダブルバッファリング)に基づく個々のビルディングレンダリングなどを含む独自のメカニクスを説明しています。環境は16x16の都市グリッドを超えて256平方に広がり、ピラミッドやハングアームのようなバウンド外オブジェクト、破壊時に怒りスクリプトを発動する「義理の兄弟の船」や数分間の降下を必要とする星間船などの自律型エンティティを特徴としています。ゲームには多くの隠されたインタラクションが含まれており、ビラの破壊(コモドール/アタリロゴ)は特定のスクリプトを通じて物語的評決を生じさせ、クレジットシステムはBCD算術を使用して十の補数オーバーフローによる価値損失を引き起こします。さらに、本文では音声ピッチ合成がASCII値に基づく低レベル実装詳細、不同高度でのフレームレートのばらつき、リブート動作に関するオリジナルディスクバージョンとクラック版ディスクの相違点についても詳述しています。
本文
ターグ:ゼロへの旅(Targ: To Zero)技術ドキュメント翻訳
01 · 都市の線 (The City in Lines)
視覚表現と操作方法
- 描画方式:
- ゲームは常にメモリ上の建物数を 1 つ に制限し、負荷を制御しています。
- プレイヤーの位置(Square)によって、その瞬間にアクティブな建物が切り替わります。
- 画面サイズは 160×136 ピクセル の多彩ピクセルで構成され、ゲーム側のコードにより直接描画されています。
- 逐次移植済みで、バイト単位での完全な精度(Byte Accurate)検証済です。
- 操作方法:
: マウスクリック視点移動
: ← → キー旋回
: ↓ ↑ キー(機首上げ下げ)高低調整
: W S キー前後進
: R F キー(上昇・下降)昇降
: Q E キーロール運動
建物の描画ロジック
- ポピン現象:
- 建物は X・Y 座標の高バイト(
の範囲)が変わってのみローディングされ、プレイヤー高度が 65,536 ユニット以下 の間だけ描画されます。$94FE - $952F - そのため、プレイヤーがそのマスに入った瞬間にのみ現れる現象が発生します。
- 建物は X・Y 座標の高バイト(
- 道路の描写:
- 上空(2,048 ユニット以上)から見た道路は、連結するマスの中心点を結ぶ線として表現されます。
- 高度
に達すると、固定された「13 の道路」画像(アドレス$200000
)がそれらを置き換えます。$902A
02 · バグ (Bug)
コロニー・クラフトへの侵入法
- 条件:
- ゲーム開始時、草の生えた一箇所 (
マスのランウェイ) に立ち、E キー を押します。08-08 - プレイヤー機体は高度 64,997 の「コロニー・クラフト(Colony Craft)」真上に不時着します。
- ゲーム開始時、草の生えた一箇所 (
- 仕組み:
- 地上の昇降機はありませんが、ランディングギアから約 14 秒歩いた場所にある見えない草地が、昇降機の E キー判定として機能しています。
- 「下り」操作でランディングギアへ行き、再度 E キー でデッキに戻るという挙動になります。
- 高度の扱い:
- コロニー・クラフトと下の草地は X・Y 座標を共有しますが、高度のみで区別されます。
- デッキの昇降機判定(アドレス
)は、マス表のエンTRIES 番目を参照し、高度を読み取ることはありません。したがって、デッキ下の草地も正確に動作します。$B4B6 / $B4BE
| 状況 | E キー判定結果 |
|---|---|
| デッキ上 | コロニー・クラフトへの進入 |
| 草地下 | 同左(正常動作) |
- 動作フロー:
: Room 8(ハンガー)へ至る。下り
: デッキへ上昇(高度 ALT 64997)。再度 E キー
: 落下し続ける。パッドを離れる
- 脱出手段:
- ハンガー 8 の 3 つのドアはロックされており、オブジェクト 23 が固定されています。到達不能のため、「エクスプレスエレベーター」つまり屋上から歩くのが唯一の手段です。
確実な移動手順 (VICE モニター使用)
自力での立ち位置設定は困難なため、以下の手順で操作します:
- VICE モニターを開く。
と> 73 72
を入力し、X・Y 座標を設定する。> 79 72
で実行し、08-08 マスの中央に正確に移動する。x- E キーを押す(何も起きなければパッドの外側へ出ているため横断)。
確認手順 (試してみよう)
- オープニングを完了させ、ベンソンが "CRASH LANDED ON TARG" と発言するまで待つ。
- 南を向き、9 分の 4(270 度)右旋回し、北西を向く。
- COMP デジタルダイヤルが西を通り過ぎると赤く点灯します(北西は中央)。
- 前方へ約 14 秒(約 100 ステップ) 歩き止める。
- 画面上に目印がない状態で、E キーを押す(横断に約 2.5 秒)。
03 · 都市外 (Outside the City)
世界構成
- 規模:
- ターグ市は横・縦ともに 16 マス、世界の全体は 256 マス です。
- 荒廃した大地に配置されているのは以下の 4 つだけです:昇降機 2 つ、ピラミッド、マスト(突堤)。
- 座標系:
- グリッドステップは 1 つあたり 256 ユニットです。
- LOC の読み出しと同じ番号付けで、-128 から 127 の順です。
- X は東へ、Y は南へと増加します。
| 要素 | 特徴 |
|---|---|
| 描画範囲 | 都市圏外(X・Y > 15)では建物は決して描画されません。 |
| 昇降機 | オブジェクト番号 61, 62 です。 4 つのマスタワーが積み重なったケージ構造。 X・Y の中バイト( )で特定されます。 |
| ハンガー | ハンガー 6 は 3 室、ハンガー 7 は 7 室を持ちます。 ジェット機(オブジェクト 3)の始点となります。 |
モデルの詳細
- モデル読み込み:
のバイトから読み込まれます。$2800/$2840 - 座標: 16 ユニットのステップで符号付きバイトです。
- 固定オブジェクト:
の 4 ビットにより固定されています(Kitchen Sink を運ぶ間だけ T キー操作可)。$29C0
| モデル | オブジェクト番号 | 特徴 |
|---|---|---|
| ピラミッド | 56 | D キーで空中に離し、プレイヤー高度で止まります()。 |
| マスト | 50 | 表示用名なし。用途は不明です。 |
04 · 他の機体 (The Other Craft)
パライア司令官の義理の兄の船(オブジェクト 0)
- 挙動: ゲーム開始時より自律飛行し、都市西縁から南へ高度 32,769 で周回します。
- 航行データ:
- ステップ (
): Y に 256 を加え、15 行を超えると 0 行に戻ります(1 ラップは 4,096 パス)。$85C5 - 位置: X は
、高度は常時 32,769。動きは Y のみです。$006F41 - スピード: ゲーム中最速の 11,475(パネル表示
)で航行します。**75
- ステップ (
- 乗り込み: B キーでは操縦できません(足元 512 ユニット以内のみ判定)。
撃沈の効果
- スクリプト 27(
)が作動し、"YOU HAVE JUST DESTROYED..." と表示されます。$8797
の 5 ビットがセットされ、義理の兄の怒り(スクリプト 1 と同じビット)を表します。$BEC0- 復旧不可能: ステップは継続して航行し、見えないまま線路を走ります。
攻撃船(Attack Ship)と雇い入れた船
- 攻撃船 (オブジェクト 15):
- 46 パス後にオーバーシュートし、あなたの反対側に位置します。
- 軸方向に 12,288 ユニット以内なら停止して発射します(ミサイルは距離の 1/16 で離陸)。
- 雇い入れた船:
- 86 パス後にコロニー・クラフトの高さを通過し、779 パス後に着地します。
飛行しない 3 つのダート (オブジェクト 8〜15)
以下のうち移動せず地上に残るものがあります。
| オブジェクト | モデル | 役割・状態 |
|---|---|---|
| 9 | ダート | 移動せず。ランウェイマーキング、見えない草地に置ける。 B キーで搭乗不可(0〜7 のみ)。 |
| 10 | 残骸 | 08-08 の不時着船;移動しない。 |
| 12 | メカノイド | Room $66 に伏しており、移動しない。 |
| 13 | ダート | 移動せず、見えない。 |
05 · 秘話 (Secret)
建物破壊とゲームロジック
- 描画外での破壊:
- マス外からの射撃で建物は破壊されますが、16 パス以内に入らない限りカウントされません。
- カウントダウン処理 (
):$871B- ミサイルが高度 2,048 以下でマスの中心から 4,096 ユニット以内に到達すると、
で「破壊された」をマークし、$2B00
でカウントダウンを開始します(ターゲットマスは$F4
)。$F5
- ミサイルが高度 2,048 以下でマスの中心から 4,096 ユニット以内に到達すると、
- 判定結果:
- カウントダウンが終了する前に飛行進入してもカウントされます。
- そうでなければ、カウントダウン終了後の別の命中は見逃され、何もしません。
コメードサインの撃破 (裏切り者!)
- 対象:
にあるコメードのロゴ(2 本柱)や、アタリのロゴなどを破壊します。13-04
- 処理 (
):$2B00- コメードサインを内部から撃破すると、「TRAITOR!(裏切り者)」と発言します。
- マスの所有者バイトが「メカノイド」に置き換えられ、スクリプト
が実行されます。32 + n- スクリプト 49: コメードマス。「GOOD SHOW!」を表示。
- スクリプト 50: アタリマス。「GOOD SHOW!」を表示。
06 · シーンの戦争 (The War of Signs)
ビラ看板の分布
- コメードロゴ(5 マス): 13-04, 03-13, 09-13, 04-15, 09-15
- アタリロゴ(5 マス): 14-05, 14-08, 12-11, 06-15, 11-15
スクリプトの実行内容
$2B00 の各マスのバイトには、所有者とスクリプト番号 n が格納されています。破壊時、「32 + n」が実行されます。
- スクリプト 36〜48:
- ランドマークの名前を表示(例:"BOSHER STADIUM")。
- Novabill の除く所有者からの攻撃を開始します。
- スクリプト 49, 50:
- 1 つの単語を表示し、プレイヤーを放置します。
07 · 画面 (The Screen)
ダブルバッファシステム
- 描画仕組み:
- ビューは 160×136 ピクセル のビットマップで、ゲーム描画用と表示用の 2 つ が存在します。
- オープニングの下降シーンの 1 フレーム(都市上空)は、全 104,448 ピクセルが一致しています。
- 更新頻度:
- 上空では 13 フレーム で描画され、約 4 秒に 1 度画像が変わります。
- 地上では 1 ビルずつ描かれ、メインループは 1 秒間に 5 パス実行されます。
ピクセル表現
- 多色ビットマップモード:
- 各バイトは 2 ビットの 4 ピクセルを持ち、ピクセルの横幅は高さの 2 倍です。
- 2 バンク(
,$4000
)に配置され、メインループで交換されます($6000
)。$AF84
08 · 飛行 (Flying)
飛行モデルと物理演算
- スロットル制御:
- 速度 = (速度 + スロットル×推力) × 保持率
- 地上では低速なら機首水平、高速なら傾斜角正弦値 −0.003 を取り、高度 64 未満で着地続けます。
- 天井バイト:
- 超えると上昇係数の 2 のべきは「天井−高さの上バイト」に置き換わります。
- クラッシュ条件:
- パスの高さが 256 以上、または機首が 45 度以下に傾いた時。
演算による結果の限界
- 硬い天井:
- ダートは ALT 24,000 で止まります。
- Poweramp を搭載すると(ジェットや CHEESE のように)ALT 105,000 (パネル表示
)まで到達します。**000
- 水平飛行:
- シナメ表が半分ステップずれているため、傾斜角正弦値は −0.003 です。
- 緩やかに沈み、地上での高速機体は各パスで着地します。
09 · 機体 (The Craft)
11 つの運動記録
- ハンドリング:
- 各機体のハンドリングは
にて 16 バイトあり、搭乗時と空中パス毎に$9DAD
にコピーされます。$BEA0
- 各機体のハンドリングは
- デコード (
):$9D99- 各フラクション数は 1 バイト、指数バイト(上位 6 ビット符号付き)、マントリッサバイト。
- 記録 0〜7 では 12 バイトは未使用です。
| リコード | 機体 | ルティン | 保持ターン | ターンステップ | ピッチステップ | バンク | 上昇 | 速度維持 | 天井 | 推力 |
|---|---|---|---|---|---|---|---|---|---|---|
| (詳細データは listing.json を参照) |
- 固定物体: Kitchen Sink を運んでいる間だけ T キーで操作可能です(
)。$980B - 名前: ダートと CHEESE はゲーム固有メッセージ、新しい船は撃沈時のスクリプトで名付けられます。
10 · 最高速度 (Top speeds)
Zzap!64 との比較
移植版の最高速度は 1986 年 5 月号の Zzap!64 に記載されている数値と一致します。
- 速度表示 (
):$B5A8- パネル表示の SPEED は整数部を 2 バイト(高バイト 2 桁、低バイト×25/64 でさらに 2 桁)として表示します。
- 最大値:
を保持するとスロットルを 1.03 倍し、23 パス後に最大 32,512 で停止します(次ステップが 2^15 に達するため)。+
11 · 地下空間 (The Underground)
構造
- 部屋:
- 都市の各階下には、サイズ(横・高さ)、色(2 色)、およびドア情報(4 バイト)を含む記録があります。
- 描画:
- ドアはワイヤーボックスとして描画され、壁に輪郭が描かれています。
- Room 8 はコロニー・クラフトのハンガーで、08-08 の昇降機が到着する場所です。
データ構造 ($30A6
, $928A
)
$30A6$928A- サイズ: 横・高さは 256 ユニット単位(都市マスは 65,536)。
- 色: ビュー塗りつぶし色とライン色の 2 色。
- ドア情報:
- 4 バイト(種類、壁位置、次の部屋からの出口、接続先部屋と壁上の位置)。
- 0 または
(暗い部屋)で終了します。$80
12 · オブジェクト (Objects)
全 64 のオブジェクト
都市と部屋以外に描かれるものはすべてこの内の一つです:飛行する機体、運ぶもの、家具、壁の看板、そしてコロニー・クラフトそのものです。
- モデル読み込み (
):$2800/$2840- 最終頂点番号、その後 3 バイト符号付き(X, 高度, Y, 16 ユニット単位)。
- エッジ(
)のみが表示され、面は存在しません。$97AB-$97F9
- 開始位置テーブル:
,$2480-$25FF
で設定されます。$2880-$29FF - フラグ (
):$29C0- T(運搬)の動作を決定:固定物体は Kitchen Sink、重いものはアンチグラビティまたはシンクが必要です(
,$980B
)。$9817
- T(運搬)の動作を決定:固定物体は Kitchen Sink、重いものはアンチグラビティまたはシンクが必要です(
- 搭乗可能機体:
- オブジェクト 0〜7 は B キーで搭乗可能です。
- 8〜15 はゲームが自力で移動させるもの(あなたのミサイル、攻撃船など)。
13 · ベンソン (Benson)
アイトロジーと音声合成
ベンソンはパネル下部の 23 セルという帯を通じて話します。その下にはチック(タック)が流れます:正方形波で、各フレームで直前に発した文字に合わせて再調整されます。
- 音声特性:
- 空白は音高を 0 にし、音を無音にします。
- 1 ラインは 124 フレーム(約 2.5 秒)かかり、次の行は押し出されます。
- 著者は各行を空白でパディングし中央揃えしています。
アセンブリ言語による音声制御
; $8DC3, メッセージ印刷中毎フレーム 8DC7 CMP #$1A ; ラインの途中? 8DCB LDX #$00 8DCD STX $D40F ; その後無音(99 フレーム休止用) ... 8DE9 LDA $FC ; 直前に印刷した文字 8DEE AND #$3F ; 低位 6 ビットのみ保持 8DF0 CMP #$20 ; 空白? 8DF2 BNE $8DF6 8DF4 LDA #$D0 ; $D0+$30 は上位溢出し $00 に 8DF6 CLC 8DF7 ADC #$30 8DF9 STA $D40F ; このフレーム用の音高
周波数と音符の対応
- レジスタ
:$D40F- 低位の 6 ビットのみがカウントされるため、数字は最初の 9 つのアルファベットと同じ音階になります(1 は A、9 は I)。
- 句読点は上に位置し、? ! アポストロフィが高音符になります。
- 音階:
- PAL マシンではレジスタの 1 ステップは約 15.03 Hz です。
- 文字 A(
)は 737 Hz、Z($31
)は 1,112 Hz で約 7 セミトーン差です。$4A
14 · サウンド (Sound)
13 つのサウンドエフェクト
音楽はありません。サウンドエフェクトは 1 つのテーブルに 13 エントリ(各 4 バイト)あり、同じルティンでボイス 1 または 2 で開始されます。
- 再生方式: ボタンのフレームごとのゲーム固有レジスタ書き込みを SID のモデルを通じて再生します。
- 周波数と波形:
(ボイス 1) と$B958
(ボイス 2) は$B93A
で共有されるテールを持ちます。$B961- 低バイトの周波数は
、パルス幅は$80
で($800
が設定)、各パルスは正方形です。$B910
サウンドの種類と処理
- ボイス 1: ビープ、ミサイル、命中
- ボイス 2: エンジン、エレベーター、オープニング
- トランスポータチャイム: 両方使用
エレベーターの唸り (サウンド $30
)
$30- 一定レベルを保持(全音量の 4/15)、周波数バイト 0 の正方形波。
- パネルの中斷が毎フレーム音高を供給(
降下、$BA87
上昇)。$BAE9 - 音高はシャフトの両端で低く(38〜83 Hz)、中央で高くなります。
ドアとトランスポータチャイム
- ドアの唸り:
- ボイス 2(三角波)で鳴動し、ボイス 1 でリング変調されます。
- 低側が帯域上昇中、上側が 22 フレーム後に鳴ります。
- トランスポータブース:
と$0E80
(218, 233 Hz)の正方形波が互いに干渉し、1 秒間膨らみフェードします。$0F80
オープニング
- NOVADRIVE: ボイス 2 で再生。
- 「SLOW-DOWN」: サウンド
でノイズの周波数を下げ、フェードを 24 秒に伸ばします。$2C - 着陸時: エンジンコードで周波数を 0 に設定しフェードアウトします。
15 · メッセージの保存方法 (How a message is stored)
トークン形式
メッセージは 1 バイトトークンリストです。多くのものは辞書上の単語数です。
- トークン 8 以上: 空白前の単語
- 1〜7: S や ED のような接尾辞(前語に接着)
: 空白$EF
: 10 進数カウンター表示$F8-$FE
: リテラルテキスト開始(上位ビットがセットされるバイトまで継続)$FF
: メッセージ終了0
単語番号と対応:
- 230〜238 は空白(9〜1)。ラインを中央揃えし、メッセージ末尾の単語 230 は 2 行目(空)に押し込みウィンドウをクリアします。
16 · イベントスクリプト (The event scripts)
ベンソンの発言制御
- 構造: 51 スクリプトによる小規模バイトコードが「何何时」を決定し、メインループの各パスで 1 操作実行します。
- デコード:
- テーブル
の 51 エントリとオープニングスクリプト$0800
(計 527)から到達可能な全操作は、インタープリタ$7001
でデコードされ解釈されます。$8AB2
- テーブル
- トリガー:
- 部屋記録、オブジェクトフラグ
、マステーブル$29C0
、スクリプト起動コード($2B00
)から来ます。$8A8C
- 部屋記録、オブジェクトフラグ
17 · BCD での通貨 (Money in BCD)
クレジットの扱い
- 形式: クレジットは 4 バイトに 8 桁の十進数です。
- 購入処理: スクリプトには引き算なし(価格の補数足し)です。
- 加算ロジック (
):$8C73- 低位バイトから高位バイトまでの 4 つの十進加算、上位バイトのキャリーは棄却します。
オーバーフローと制限:
- クレジットは 9000 (
) から開始。$710C - Hertz 船は 999,999 ですが、チェック
は上位バイトが正か否かを問うため、1,000,000 を要求します。$0E6F - スタートは 9,000 で価格が 5,000 の倍数のため、クレジットの末尾は常に 4,000 または 9,000 です。
18 · 数値 (Numbers)
乗算と除算
- 3D ビュー: マントリッサと 2 のべきという 2 バイトフロックで動作し、両者の対数(256 バイトテーブル)を加算して乗算します。
- 誤差処理:
- B のマントリッサ
/ A のマントリッサ$00→$FF
で −0.44%〜+0.44% の結果が出ます。$00→$FF - 範囲端では指数が誤差を変えずに計算されます。
- B のマントリッサ
19 · ライン描画 (Lines)
8 つのルティン(各象限 1 つ)
ビュー内の各エッジは、8 つの短いルティンのいずれかで描画されます。
- 描画アルゴリズム:
- 長い軸に沿ってステップし、傾斜バイトを 8 ビットカウンターに足す(または引く)、カウンターが巻き戻ったら横方向にステップします。
- 象限表示: クリックで選択可能なビューの表示象限。
- 検証結果:
- 全ビットマップバイト、傾斜、象限、端がシミュレーター内のゲームコードで 3,000 ランダムドラッグと全行列形式、および 6,000 回直接呼び出しで一致しました。
20 · コントロール (Controls)
キー入力の読み取り
ゲームはキーボード自体をスキャンし、各キーを番号化(行×8+列)、SHIFT が 64、CTRL が 128 を加算します。
| キー | 番号 | 動作 | リスト |
|---|---|---|---|
| スティック | walk/fly; 徒歩で上下 80 ユニット、左右でパスごとの 1/64 ターン | $B2FE, $A165 | |
| Fire | ミサイル発射(地上機体から) | $886A | |
| 1〜9, 0 | スロットル 2n+4; 0 は 2^14(最速) | $B47E, $BC50 | |
| SHIFT+数字 | 逆方向のスロットル制御 | $B47E | |
| + と − | スロットル×1.03/0.98 を毎パス保持適用 ($28, $2B) | $B499 | |
| SPACE, ← | スロットル 2^−31: 停止 ($3C, $39) | $BC50 | |
| T | $16: 256 ユニット以内のオブジェクト取得 | $970A | |
| B | $1C: 512 ユニット以内の機体搭乗 | $970E | |
| D | $12: 最後に取得したオブジェクトの離脱 | $98FE | |
| L | $2A: 着陸時の機体離降 | $98C8 | |
| E | $0E: 昇降機 | $B3FD | |
| Y | $19: ベンソンへの「はい」 (スクリプト操作 11) | script op 11 | |
| CTRL + RETURN | $81: ホールドによる一時停止 | $B335 | |
| CTRL + Q | $BE: クリード散乱し、08-08 のダートで再起動 | $80E8 | |
| CTRL + S, CTRL + L | $8D, $AA: ディスクに位置 0-9 を保存/読み込み | $B382, $819E |
ディスパッチは
$B2FE-$B47E で処理。スティック入力はそのパスでキーボードをスキップし、あらゆる入力も $BEC0 の 7 ビットを設定し、ベンソンが何もしないことを知ります。
21 · オープニング (The opening)
イベントの流れ
ゲームは宇宙で開始し、故障する NOVADRIVE を通じて独自のイベントスクリプトを実行し、9,000 クレジットとターグ市中央に降下します。
- カウントダウン: 21 の星の背景
- 最大逆推力: ターグが拡大していく
- 下降: 上空からの都市道路
- CRASH IMMINENT!: その後はマニュアル操縦
スクリプト 0 とメッセージ
オープニングはゲームイベントと同じバイトコード(
$7001)で記述され、プレイ開始時に第 2 ビットマップが上書きするメモリ領域に存在します。
- ランダムコメント: "WHERE AM I", "YOU CRASHED", "GOOD LANDING!", "OUCH!"
- 状態報告: "CRASH LANDED ON TARG" など。
- ドミニオン・ダート: 5,000 で提供するオファー。
22 · 保護 (Protection)
リセット時の挙動
ノベネン(Novagen)のディスクはカートリッジのように見せるため、リセット時にゲーム独自のループを走らせてマシンの復元を防ぎます。
- $8000: 冷始動 (
)$2170 - $8004: CBM80 (crack: 0s) の文字
- $2170: SEI, LDX #$00...
で無限ループ($2177
は到達不可能)$2179
オリジナルの挙動:
に永久に停止。$2171-$2177- ループ後のコードはページ単位でメモリを消去するはずでしたが、ブランチが 1 インストラクションほど遠くへ戻り LDX #$00 に戻るため、各ストアで X は 0 です:マシンは
への書き込みを永遠に続け、消去へ至りません。$2180
クラック版の挙動:
- BASIC の READY が表示。
- 署名をクリアし、ブランチを LDX #$00 の
(BRK)に修正します。$00
23 · オッドズ・アンド・エンズ (Odds and ends)
パイロットには分からない事柄
コードに見つかりエミュレーターで検証された小さな要素たちです。
- $BCB8-$BCFF: ゲームパネルフォント(アタリスペース
、空白)で描画:アタリ DOS 2 のメニュー断片(40 カラム、2 カラムマージン)。誰も読みません。$00 - コモドール機のアタリ画面: 上記バイトはアタリ内部画面コードであり、ゲームメモリブロックの一部として DOS メニューを連行しています。
- ベンソンの監視: プレイヤーが無作為に行動すると、18 秒ごとに「IS ANYBODY THERE...」と尋ねます。最初のキーまたはスティック操作でブリーフィングが再開されます(
の 7 ビット$BEC0
を設定)。$B31B - RESTORE: 何もしません。NMI ベクタは
の RTI に指します。$8009 - アメリカンマシンでは実行不能: $5024 で KERNAL の PAL フラグを読み、NTSC では自己変更アドレスへジャンプしクラッシュします。
- セーブファイル: 全世界を保持(14 ブロック)。オリジナルディスクからのセーブは CBM80 署名を持ちます。
- エスケープ:
- 看板 02-03 が破壊されると、著者の前作「Encounter」の広告で船が去るのを拒否します(Anti Time Bomb で修復必要)。
- GAME OVER:
- エスケープ後、スクリプトマシンのビジーフラグ(
の 6 ビット)はクリアされず、約 18 秒ごとに GAME OVER が循環:15 秒待機後に表示されます。$BEC0
- エスケープ後、スクリプトマシンのビジーフラグ(
- 攻撃船のミサイル:
- ホーミングしません。発射時一方向に锁定し直進します。
- 00-00 マス:
- 誰も見ることのない建物があります(ローディングされません)。
- 正確な 999,999 クレジットは不可能: Hertz 船は 999,999 ですが、チェック
は上位バイトが正か否かを問うため、1,000,000 を要求します。$0E6F