Oblast: A better Blasto game for the Commodore 64

2025/12/07 10:47

Oblast: A better Blasto game for the Commodore 64

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

改訂要約

この文章は、1978年のアーケードゲーム Blasto の進化を追っています。Blasto は Gremlin の Blockade から派生した Hustle ハードウェア上で動作し、ROM がわずか 2 K に収まる設計です。その後、Milton Bradley が TI‑99/4A 用にライセンスを取得し、コアゲームプレイは維持しつつ、音楽・カラーグラフィックス・設定可能な速度・迷路描画・ミン密度・無限ライフ(時間制限付き)といった機能を追加しました。また、各プレイヤーが一度に1発の弾しか撃てない単一画面レイアウトに変更されました。

著者は次に Oblast を紹介します。これは Commodore 64 用のリメイクで、GitHub 上でオープンソース(Floodgap Free Software License)として公開されています。Oblast はシングルプレイヤー専用ですが、元のコンセプトを拡張し、最大 384 個の手続き的に生成されたスクリーンと迷路密度・トレイル生成・燃料制限・無敵状態・弾丸サイクリングの完全な設定が可能です。VIC‑II ECM モードを利用して追加背景色を実現し、カスタム 64 字符フォントと三つのスプライト(タンク本体・トレッド・アクセント)で弾を描画します。リロードは移動時間に連動しているため、一度に表示できる弾は四発までです。爆発はフレームごとに文字ベースのプレイフィールドをスキャンし、黄色背景ビットを遅延マーカーとして使用することで処理されます。ゲームロジックは 240 Hz で実行され、より滑らかな動きを実現しています。

音声は SID の三つすべてのボイスを使用します。ボイス 3 はエンベロープをサンプルし、VIC‑II の細かい X/Y スクロールを駆動させることで画面揺れを同期させます。ゲームには四つのプリセットモード(Regular Duty、Increased Bombs、Classic Blasto、Gonzo)があり、完全な設定画面と「ドットマトリクス」ブリーフィング付きのアトラクトモードがあります。得点は各スクリーン後にボーナスが付与され、高得点メダルは ECM スクロール効果を使用します。ゲーム全体がメモリ上で動作するため、カセットやテープからロードせずにプレイできます。

ビルドツールには Perl 5、xa65 アセンブラ、およびオプションの pucrunch 圧縮が含まれます。バイナリは C64 エミュレータ用または物理メディア用に .prg ファイルとして配布されます。

本文

昔(実際は半年ほど前)に、Gremlin Blasto のアーケードボードをワイヤリングしていたときに、1978 年のゲーム史やミルトン・ブラッドリーがテキサス・インスツルメンツ 99/4A に移植した唯一の公式ホームコンピュータ版について長々話しました。
単体プレイモードでは迷路を走り回り、すべてのミネを爆破しつつ、時に印象的な連鎖反応を起こしますが、自分自身が燃え上がらないよう注意するゲームです。

TI‑99/4A 版は私が最初に覚えている Blasto で、アーケード版の Blasto は実際にはプレイしたことがありません。
(また、ここではソニーの PlayStation 用「Blasto」(Phil Hartman の声優を除けば、開発者と少数のプレイヤーにとってはトラウマ的な苦闘だった)とは関係ないことに注意してください。)

三名の作家によるコンポジットで、TI‑99/4A 版は機能的で正確な変換であり、設定可能なオプション・カラーグラフィックス・音楽を追加しています。実際、TI の Blasto は /4A 上で私のお気に入りのゲームで、他のカートリッジよりも好きです。ただし、正確に移植されているため、アーケードハードウェアの CPU と ROM 容量が限られていたことから来る弱点をすべて継承しています。

記事では将来的な Blasto プロジェクト 2 件について触れました。
1 つ目はカスタムアーケードキャビネットに板を入れるための貯金、2 つ目は TI Blasto を自分仕様で改良することです。このプロジェクトはバケットリストの第 2 件として完了しました。数年かけて作業し、やっと完成です――高速アクションとアニメーション、大量の手続き的に生成された画面、完全に設定可能なゲームプレイ。

Oblast(オブラスト) と名付けました。実際の Commodore 64 またはエミュレーターで無料で遊べます。以下に同じ点と異なる点をまとめます。


1978 年版 Blasto の概要

  • ハードウェア:Hustle(Gremlin の Blockade を派生させたもの、Lane Hauck が設計)。
  • プログラマ:Bill Blewitt はキャラクタグラフィックを除き、全コードを 2 KB の ROM に詰め込みました。
  • 機能:迷路生成・プレイヤー入力(1〜2 人)・弾の処理・衝突判定・音声と「爆発」回路制御・連鎖爆発を同時に起こすロジックを実装。
  • フリープレイ:上面版には無料ゲームロジックもありました。

ミルトン・ブラッドリーが Gremlin の新オーナー Sega からライセンスを取得し、TI 99/4 開発者として作業した際、基本的なゲームプレイとルールはほぼ同じに保ちつつ、音楽トラック・カラー表示・複数の設定オプション(速度・迷路描画スタイル・トレイル有無・ミネ密度など)を追加しました。

  • MB 版:緑色の地球ベースの背景に青いミネ、宇宙船をタンクへ変更。
  • ミネ密度:速度よりもゲームプレイへの影響が大きく、ミネが多いほどスピーディで爆発的なゲームになります。
  • サウンド:TMS9919/SN76489 のノイズ出力は弱く、音質に制限があります。
  • メロディ:シンプルなチューンを再生しようとしますが、弾射撃やミネ爆発の効果音で中断されます。

元ゲーム同様、無限ライフですが時間は有限です。2 人プレイ時に爆発に足を取られたり相手に撃たれると、再生まで貴重な秒数が失われます。ただし、再生成は「テレポート」的に元のスポーンポイントから始まります ― これは地上タンクにはあり得ない動作です。

主な quirks(奇妙さ)

  • 各プレイヤーは同時に 1 発だけ弾を発射可能。衝突後すぐにもう一度撃てます。
  • 爆発や連鎖反応中でも移動はできますが、フレームレートが若干低下します。ただし、爆発が止まるまで射撃はできません。
  • タンクはミネ・障害物を通過できず、完全に不通過の障壁です。
  • 画面は 1 つのみ。全ミネを時間内にクリアすると、上面版では無料ゲームが与えられます(フリープレイが合法である管轄下)。TI ポートではミネをすべて撃破した時点で「ゲームオーバー」画面が無料で表示されます ― 同じ報酬が勝敗に関係なく得られます。

Oblast – 新しい機能

  • 単一プレイヤーモード専用
  • TI Blasto の設定性を保持しつつ、迷路生成とコアルールセットも拡張。
  • 設定は BASIC スタブで書かれ、速度向上のために 6502 アセンブリヘルパーが利用されます。メインゲームループの大部分はアセンブリです。

プレセット

4 種類をテストプレイ後選択:

  1. Typical – Attract モードで表示されるデフォルト。
  2. Increased bombs – ミネ増加。
  3. Classic Blasto‑style – トレイルと従来のルール。
  4. Gonzo – 個人的に好き。

また、完全なゲーム設定画面からさらに微調整可能です(ゲームモード・開始レベル/画面(0–255)・ミネ/障害物密度・トレイルオプション・燃料計挙動・弾発射速度など)。Oblast は最大 384 個の手続き的に生成された画面をサポートし、0〜255 の任意の番号から開始できます。画面は固定シードデータ(64 の BASIC ROM)から生成され、同じパラメータであれば常に同一画面が作られます。

視覚

  • カスタム文字セットを使用し高速化しつつ、VIC‑II の拡張背景色モード (ECM) でカラー柔軟性を保持。
  • ECM は同じ画面上で最大4 色の背景をサポート。Oblast は緑背景に加えて情報パネル用黒と爆発アニメーション用黄を追加。
  • 標準256 エントリセットから 64 文字のみ使用し、上位2ビットは背景色選択に使われます。
  • カスタムフォント(Ultrafont+)はメモリ節約のため、一部文字をグラフィック形状で置き換えています。

メカニクス

  • 爆発:フレームごとにプレイフィールド全体を走査し、アニメーションは一定フレームレートに固定。
  • タンク移動:3 つのスプライト(トラック・ボディ・アクセント)で90°角のピクセル単位移動を実現し、高度な三角法不要。
  • :同時に最大4 発が画面上に存在可能。燃料計ニードルスプライトでリロード状況を表示(暗青3つ=リローディング、鮮やかなシアン1つ=発射準備完了)。リロード時間は任意方向で弾が画面を横断する最大時間に等しい。
  • 衝突処理:タンク座標の更新速度は VIC‑II の描画速度より速く、衝突時には急停止ではなく減速効果として現れます。

音響

3 つの SID ボイスをノイズ生成に使用:

  1. Voice 1 – 発射時に鳴る。
  2. Voice 2 – タンクエンジン音(速度・回転で周波数変化)。
  3. Voice 3 – 爆発音;波形出力とエンベロープ振幅をサンプルし、VIC‑II の微細 X スクロールにフィード。これが画面揺れ(スクリーンシェイク)を音楽と同期させます。

スコア & ハイスコア

  • 画面完了後に静かにボーナス付与、終了時に合計表示。
  • 一部ボーナスは相互排他的または設定によって無効化。
  • チャンピオンメダルは ECM を使用しマスク多色バー効果を実現;横分割は不要。

技術的ノート

  • 全体がメモリに収まる ― 読み込みやディスクアクセス不要、カセットタープからも動作可能。
  • メモリレイアウト:2 つの文字セット、スプライトバンク、2 つのハイレゾタイトル画面(BASIC ROM の下に配置し8 KBを解放)。
  • コアサブルーチンと音楽トラックはこれら資産周辺に分散。BASIC メニュースタブは変数用メモリが十分残っています。
  • Attract モードの再設計では、クレジットシーケンスでダブルバッファスクロールを使用。

入手方法

Oblast はフリーウェア/オープンソースで GitHub の Floodgap Free Software License にて公開しています。ビルドには:

  • Perl 5
  • xa65 クロスアセンブラ
  • (任意)pucrunch 圧縮ツール

Perl ツールはスプライト、トークナイズ済み BASIC コード、圧縮されていない実行可能リンク版を生成します。プレセット変更は BASIC コード内の

DATA
ステートメントを編集し、
make
を実行すれば新しいバイナリが得られます(混同防止のため別名で保存してください)。

ゲームだけ再生したい場合は GitHub リリースにフロッピー/ディスク/タープ用の圧縮版と未圧縮 (.prg) ビルドがあります。ポート2 にジョイスティックまたは同等機器が必要です。PAL でも NTSC の Commodore 64 でも動作します。


これは私のバケットリスト上の最後のプロジェクトではありませんが、もう一つの完成したものです。
もし遊んで楽しめたらコーヒー(Pibb)をいただければ幸いです。

同じ日のほかのニュース

一覧に戻る →

2025/12/07 10:17

Using LLMs at Oxide

## Japanese Translation: ## 改訂要約 大型言語モデル(LLM)は、文書の高速解析、コード生成、テキスト作成などで強力なアシスタントとなりますが、人間の判断や責任を置き換えるべきではありません。LLM の強みには、長文の即時要約、コーディングエラーの検出、プローズ提案などがあります。しかし、これら同様にプライバシーリスク(アップロードされたデータでのトレーニングからオプトアウトする必要性)、過度な奉承的表現、クリシェが多い出力による真実感の低下、不安定なデバッグ支援なども伴います。実際の例では、ChatGPT、Claude、Gemini へのデータ共有ポリシーで「全員のモデル改善」を無効化するようユーザーに求められ、Oxide は強力なライターを採用し完全な LLM コンテンツ作成を避ける方針を取っています。ソフトウェアチームは LLM の支援を受けながらも、人間によるコードレビューに依存しています。今後、エンジニアは迅速な反復のために LLM を使用し続けますが、責任と真実感を維持するためにピアレビュー前に厳格な自己レビューを強制します。企業は明確なプライバシー設定とガイドラインを設置し、ライターは独自のスタイルを保持し、開発者は機械出力を検証するプロセスが必要です。この効率向上と人間監督のバランスこそが、将来の業界標準を決定づけるでしょう。

2025/12/07 12:03

Z2 – Lithographically fabricated IC in a garage fab

## Japanese Translation: > 著者は、DIYで低コストのポリシリコンゲートプロセスを用いてIntelの最初のプロセッサ技術を模倣し、2.4 mm² のダイに10×10配列(合計100トランジスタ)を製造しました。以前のZ1テストチップ(6トランジスタ)に続き、新しいZ2チップは完全な電気特性評価が可能です:Vth ≈ 1.1 V、Cgs < 0.9 pF、立ち上がり/落下時間 < 10 ns、オン/オフ比 ≈ 4.3 × 10⁶、漏れ電流 932 pA(Vds = 2.5 V)(環境光下では約100倍高い)。これらの数値は、2.5–3.3 V のロジックレベルで信頼性ある動作を示しています。 > 製造は自己整列型「ゲートファースト」プロセスであり、イオン注入を省略し、水・アルコール・アセトン・リン酸・フォトレジスト・デベロッパー・N‑タイプドーパント・HF/CF₄/CHF₃ RIE・HNO₃ などの一般的な実験室化学物質のみを使用し、クリーンルームは不要です。約10 nm のSiO₂ゲート酸化膜と300 nm のポリシリコンを有する25 × 200 mm ウェーハを約45ドルで購入しました。製造には15チップ(1,500トランジスタ)が関与し、少なくとも1チップは完全に機能し、2チップが「ほぼ機能」しているため、推定トランジスタ歩留まりは80 %です。最も頻繁な欠陥はソース/ドレインがバルクシリコンと短絡していることです。 > 今後の作業にはテスト自動化、歩留まり向上、およびオペアンプやメモリアレイなどより複雑なデジタル/アナログ回路への技術拡張が含まれます。成功すれば、このDIY手法はホビイストや小規模ラボの参入障壁を低減し、ニッチなイノベーションを促進し、少量プロトタイプ用に商業製造所への依存度を削減する可能性があります。

2025/12/07 6:55

Screenshots from developers: 2002 vs. 2015 (2015)

## Japanese Translation: 記事は、グラフィカルインターフェイスの台頭にもかかわらず、Unix/Linux ユーザーが10年以上にわたり主にターミナル中心のワークフローを維持していることを示しています。2002 年初頭の最小限デスクトップ(xterm、fvwm、Gnome 2)のスクリーンショットと 2015 年までのユーザー報告はほぼ変化がないことを確認しています:多くの人がまだ軽量ウィンドウマネージャやコンソールエディタ(Emacs や Vim)に依存しています。ある回答者は、fvwm を使用していた FreeBSD から Linux(Lubuntu)と LXDE に移行しつつもコマンドライン中心を維持しました。彼は Firefox、Gimp、Wireshark、VLC などの GUI ツールを追加しましたが、シェル、Perl、および C でスクリプトを書き続け、mutt を使ってローカルでメールを処理しています。別の OS X ユーザーは、Mail.app、Safari、Calendar、Slack の 6 つの仮想デスクトップと専用ターミナルデスクトップを運用しています。数人の参加者はハードウェアアップグレード(例:スマートフォンが初期の Pyramid 90x を上回る)について言及しましたが、classic Unix プリミティブ(`open`、`close`、`fork`)に満足しているようです。 記事ではまた、Pine から Thunderbird または mutt へのメールクライアントの進化と、職務変更後の VirtualBox、LibreOffice、および Wine を介した Windows 互換性についても追跡しています。Hacker News と Reddit(/r/programming、/r/linux)のコミュニティディスカッションはさらに文脈を提供します。 総じて、グラフィカルデスクトップが進化しているにもかかわらず、ターミナル中心のワークフローは継続しています。legacy ウィンドウマネージャ(fvwm)と軽量環境(LXDE、LXQt)は、新しい GUI と共存し続けています。この持続的なミニマリズムは、ソフトウェア開発者がコマンドライン機能を前面に押し出し、ユーザーコミュニティおよび産業界の両方で継続的に求められるターミナルフレンドリーなツールへの需要を満たすべきだという示唆です。

Oblast: A better Blasto game for the Commodore 64 | そっか~ニュース