スキップしてメイン コンテンツに移動

投稿

音と操作を取り戻せ!Claude Codeで挑むXShipWarsのSDL2近代化【サウンド・入力編】

20年前のC++コードをモダナイズする「XShipWars」復活プロジェクト、「 23万行の20年前コードが3日で動いた!Claude Codeで蘇るXShipWars【起動編】 」で報告した第一弾に続き、第二弾をクリアしました! 👉 GitHubリポジトリ: https://github.com/tariki/xshipwars 今回のミッションは、長年放置されていた「サウンドシステム」と「入力デバイス」の近代化です。現代のLinux環境ではビルドすら困難になっていた2つのレガシーライブラリを、マルチメディアの標準である「SDL2」へと一本化しました。 サウンドシステムの刷新 メンテナンス終了している独自サウンドシステム「YIFF」を「 SDL2 (SDL_Audio)」 へ移行しました。 入力デバイスの刷新 メンテナンス終了しているジョイスティックライブラリ「libjsw」を「 SDL2 (GameController/Joystick API)  」へ移行しました。 現在はDev Container(ヘッドレス環境)上でビルドと基本動作を確認した段階です。実機環境でのBGM・効果音の再生や、実際のジョイスティック操作については検証を行えていません。 もし「動かしてみたい」「レトロゲームの動作検証なら任せろ」という方がいらっしゃいましたら、ぜひお手元の実機でお試しいただき、Issueやフィードバックをいただけると大変嬉しいです!
最近の投稿

【アップデート情報】カットアップメーカーに「全消し」と「チョキチョキ音」が仲間入りしました!

偶然の言葉の出会いを楽しむWebツール「カットアップメーカー」をアップデートしました。 👉 GitHubリポジトリ: https://github.com/tariki/cutup-machine 今回は、よりテンポよく遊んでいただくための2つの改善を行っています。 「すべて消す」ボタンを追加 元テキストと生成結果をワンクリックでクリアできるようにしました。別の文章でどんどん試したいときの手間を減らしています。 生成時の効果音を追加 生成ボタンを押した際、「チョキチョキ・・・」と紙をハサミで切り刻むような心地よい効果音がなるようになりました。 整然とした日常の文章を放り込んで、カオスのなかから思わぬフレーズや新しい表現の種をぜひ拾い出してみてください! フィードバックやIssueもお待ちしています。

23万行の20年前コードが3日で動いた!Claude Codeで蘇るXShipWars【起動編】

「 消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる【序章】 」で宣言した復活プロジェクトですが、早くも第一段階をクリアしたのであります! 現在のところ「macOS上のLinuxコンテナ + XQuartz」という環境での動作確認のみをした段階ではありますが、ひとまず動く状態まで持っていけたため、GitHubでリポジトリを公開しました。 👉 GitHubリポジトリ: https://github.com/tariki/xshipwars 4ヶ月の作業がわずか3日に?数字で見る成果 今回の対象は、約23万行におよぶC++のオリジナルソースコードです。結果として、以下の規模の修正で起動に成功しました。 コミット数: 65回 コード修正量: 約1,900ステップ 所要日数: 約3日 もし自力ですべてのエラーを追って修正していたら、おそらく3〜4ヶ月はかかっていたはずです。それが実質数日で動いてしまったことには、Claude Codeの圧倒的な推進力を実感せざるを得ません。 スムーズに移植を成功させた「事前準備」の工夫 今回トラブルなく短期間で起動まで漕ぎ着けられた最大の要因は、いきなりコード修正を始めず、 まずClaude Code自身に作業環境と方針を整備させたことではないかと思います 。具体的には以下のファイルを定義してから移植に臨みました。 CLAUDE.md :全体のゴール定義と移植の基本方針 build-linux skill : Linux環境でのビルド手順と、コンパイルエラー発生時の対応ルール run-headless skill :X11のないコンテナ環境下で安全に動作確認を行う方法 PORTINGS_NOTES.md :ビルドや検証の過程で見つかった、非自明な挙動や修正記録の蓄積 この「AIに文脈とツール(Skill)を渡してから走らせる」というアプローチが非常にうまく機能しました。 残された課題と今後のロードマップ 基本的な動作は確認できたものの、完全復活にはまだ乗り越えるべき壁があります。 サウンドシステム: 採用されている「YIFF Sound System」が現在メンテナンス終了 入力デバイス: ジョイスティック制御の「libjsw」も現代環境ではそのまま利用不可 こ...

「花まさロス」に終止符!ビッグシェフ亭 つくば店へリベンジ潜入、噂のコスパステーキは本物だった

以前「 花まさロスを救う新星!「ビッグシェフ亭 つくば店」の驚愕コスパステーキを発見 」で紹介した「 ビッグシェフ亭つくば店 」さん、前回は駐車場満車で涙をのんだわけですが、今回ついにリベンジを果たしてきました! 気合いを入れて開店15分前に到着したものの、すでに店頭には約20名の行列。オープンと同時に案内が始まりましたが、惜しくも1巡目には入れず・・・!つくばの肉好きたちの熱量の高さを改めて実感であります。 待機中にメニューを受け取り、期待を高めながら作戦を練ります。「ビッグシェフ亭」さんの看板は、ステーキに「ご飯・味噌汁・サラダ・小鉢・お新香」がフルセットになったこちらの定食。1,000円前後の価格帯から選べる圧倒的コスパ。これだけの行列ができるからには「お値段以上」に違いないと確信し、初訪問ではありますが、ボリューム感のある「M定食」をチョイスしました。 S定食:約160g(990円・税込) M定食:約200g ~ 約220g(1,518円・税込) L定食:約260g ~ 約320g(1,738円・税込) XL定食:約400g(2,200円・税込) 席に通され、いよいよ運ばれてきたのがこちら! 鉄板の上でジュージューと音を立て、湯気を立ち上らせるステーキ。香ばしい香りとシズル感は、食べる前から文句なしの100点満点です。 さっそく口に運ぶと、力を入れずともすんなり噛み切れるやわらかさ。そして、ガツンと効いた焦がしニンニクソースが相性抜群で、お肉単体でも十分な満足感があります。 しかし、ここで最大のサプライズが訪れました。 「・・・ご飯が、異常においしい!」 炊き加減といいお米の甘みといい、もはや「ステーキではなくご飯が主役では?」と思わされるほどのクオリティ。この絶品ご飯に濃厚なソースと肉汁が合わさるわけですから、普通盛りでは到底足りなくなります。注文時は「ご飯大盛り(無料)」一択を強くおすすめします。 お腹も心も大満足のランチとなりました。訪問される際は、ピークの混雑対策(早めの到着推奨)と「ご飯大盛りコール」の2点をお忘れなく。近いうちにまた再訪したいと思います!

文学×数学の遊戯「ウリポ」をデジタルへ、「カットアップ」の次は「S+7法」ツールを作りたい

「カットアップ技法」をブラウザ上で手軽に再現できるツール「 カットアップメーカー 」 を公開したところですが、ふと「アルゴリズム的な文学技法は、まだまだデジタル実装と相性が良いものがあるのでは?」と思い立ち、リサーチを進めてみました。 そこで再発見したのが、実験文学集団「ウリポ」の代表的手法である「S+7法」であります。 ウリポとは、20世紀半ばのフランスでレーモン・クノーや数学者フランソワ・ル・リヨネらによって結成された文学グループで、数学的な制約や規則を文章作法に持ち込み、新たな文学的創造性を切り拓く試みを多数行ったそうです。その代表的な試みのの一つが、この「S+7法」であります。 ルールは至ってシンプル。「辞書を引き、文章中のすべての名詞を、その辞書で7つ後ろに載っている名詞に置き換える」というもの。 これを現代のウェブツールとして実装する場合、仕組みとしては以下のようなフローで構築できそうです。 入力されたテキストを形態素解析し、名詞のみを抽出 ベースとなる辞書インデックスを参照し、該当名詞から7語後ろのエントリを特定 元の名詞を置換して文章を再構成 課題になりそうなのは「参照する辞書データの選定」ですが、現代的な日本語辞書データや専門辞書を差し替えられる設計にすれば、生成される文章のナンセンスさや詩情がガラリと変わる面白いジェネレーターになりそうです。 現在取り組んでいる「 消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる 」のプロジェクトが一段落したら、次はこの「S+7法」ツールの制作に着手してみようかと思います。 ちなみに今回のリサーチ中、アーティストの「 古川諒子 」さんの作品にも行き当たりました。「カットアップ」や「S+7法」などで自動生成・脱構築されたテキストからインスピレーションを得て、具象絵画を描き出すという非常に刺激的な試みをされています。言語のルールから生まれた偶然性が、ヴィジュアル表現へと変換される面白さ、もし東京などで個展が開かれる機会があれば、ぜひ実物を体感してみたいと思います。

消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる【序章】

  「インターネットから一度消えたソフトウェアは、二度と手に入らないのか?」 ふと昔遊んだ(あるいは名前を見かけた)レトロなオープンソースゲームを思い出し、検索窓に打ち込んでみる。しかし画面に返ってくるのは冷淡な「404 Not Found」や、20年前に時が止まったリンク集の残骸ばかり。そんなデジタルアーカイブの断絶を経験したことがある人は、決して少なくないはずであります。 悩めるエンジニアにとっては、「XShipWars」がそれでした。 「XShipWars」とはどんなゲームだったのか? XShipWarsは、1990年代後半から2000年代初頭にかけてUnix/Linux界隈で開発・運用されていた、クライアント・サーバー型の2Dリアルタイム宇宙戦略・戦闘シミュレーションです。 クレジットを稼いで小型迎撃機から大型戦艦へステップアップし、兵装やジェネレータ、センサー類を細かく換装していくRPG的成長要素や、惑星や宇宙基地を自勢力に組み込み、資源採掘と補給ラインを維持しながら敵勢力の拠点を攻め落とす戦略性、加えて当時のUnix系ゲームといえば、シンプルなワイヤーフレームや原色のドットアイコンが主流でしたが、XShipWarsは、細部まで描き込まれた宇宙船のビットマップスプライトを採用。さらに画面上には、リアルタイムに変化する円形レーダー、シールドやリアクターの出力を示す計器パネル、通信ログなどが整然と並び、まるで「本物の宇宙戦艦のオペレーションシート」に向き合っているかのような濃密なUIを実現していたのが特徴です。 公式サイト消滅から「Debian Snapshot」でのサルベージまで ずいぶん前からXShipWarsの公式サイトは完全に閉鎖されており、現代の主要ディストリビューションの公式リポジトリからもその名は姿を消していました。 「 Wayback Machine 」などのWebアーカイブでもリンク切れだらけで、「完全なソース一式の復元は絶望的か・・・」と諦めかけていました。しかし、オープンソースのエコシステムには強力なタイムマシンが存在していました。それが、Debianプロジェクトが運用する歴史的リポジトリ「 Debian Snapshot 」であります。 Debian Snapshotは、過去にDebianに取り込まれたパッケージを日付・バージョ...

SNSで見かけた格安Amiga「NanoMig」が熱い!気になる「推奨ハード」と「ROMの入手元」を調べてみた

先日、Facebookのタイムラインを眺めていたら、手のひらサイズの小さなFPGA基板の上で、あの「 Amiga 」が軽快に動いている動画が流れてきて目を奪われたのであります。 「こんなに小さな基板で、なぜAmigaが動いているんだ・・・?」とその動画の正体を調べてみたところ、行き当たったのがオープンソースプロジェクトの「 NanoMig 」でした。 Commodore Amigaといえば、かつて欧米のホビーPCシーンやデモシーンを席巻した伝説の名機であります。日本国内でも、90年代の人気番組「進め!電波少年」のオープニングや演出で使われていた独特なCGアニメーション(松村邦洋さんや松本明子さんのキャラクターが動くCG)の制作に使われていたことで、ご記憶の方も多いかと思います。 今なお世界中に熱狂的なファンを持つAmigaですが、近年は実機のプレミア化が急激に進み、状態の良い本体を手に入れるのは極めて難しくなっています。 そんな憧れの名機を、現代の安価なFPGAボード上に蘇らせようと有志によって開発が進められているのがNanoMigなのであります。しかも調べてみると、2024年に始まったこのプロジェクト、最新版(v0.14-beta)ではなんとAmiga 1200相当(68020 CPU + AGAチップセット)の動作にまで対応しているとのこと。 【補足】初期型(A1000 / A500)から「Amiga 1200」への劇的な進化 Amigaは、CPUの負荷を減らすためにグラフィックや音声を専用のカスタムチップに任せる先進的な設計が特徴でした。 初期型(Amiga 1000 / 500): CPUはモトローラ「68000」のみを搭載。グラフィックは初代チップセット「OCS(Original Chip Set)」が担当し、最大4,096色中32色の同時表示でした。当時の家庭用PCとしては破格の性能でしたが、美麗なグラデーションの表現には限界がありました。 上位モデル(Amiga 1200): 1992年に登場したホビー向けAmigaの集大成。CPUがより高速な「68020」へと強化され、グラフィックも新世代の「AGA(Advanced Graphics Architecture)」チップセットへと刷新。最大1,677万色中256色(特殊なHAM8モードでは約26万色)...

Finderから一発起動!VS Codeを右クリックメニュー(サービス)に追加する方法

Windowsでは、VS Codeをインストールすると右クリックメニューに「Open with Code」が自動で追加されますが、macOSにはこの機能がないのであります。 そんな悩みを解消してくれる便利なツールが、オープンソースで公開されている「VS Code Finder Service」であります。 導入は驚くほど簡単。ターミナルを開き、リポジトリをクローンしてインストールスクリプトを実行するだけで完了します。 git clone https://github.com/vknabel/vscode-finder-service.git cd vscode-finder-service ./install.sh 日常のちょっとしたクリックやドラッグの手間を減らすだけで、開発や作業のリズムが格段にスムーズになります。Windowsのあの快適さをMacでも再現したい方は、ぜひ試してみてください!

【新店情報あり】ラーメン三水で導き出した最適解!「麺の量問題」を解決する黄金比とは?

脂と濃厚スープが恋しくなり、「 ラーメン三水 」さんをリピート訪問してきました。 ちなみに本題の前に耳寄りなニュースをひとつ。なんと「清六家 下妻店」が、 10月5日に「ラーメン三水 下妻店」としてリニューアルオープン するとのこと!近隣にお住まいの方は要チェックであります。 さて、今回いただいたのは「味噌ラーメン」にライス。 実は三水さん、前回欲張って「大盛り」にしたところ圧倒されるほどのボリュームで完食に苦戦した経験があります。そこで今回はリベンジとして「普通盛り」をチョイスしたのですが・・・、細麺に濃厚な味噌スープがしっかり絡み、ライスとの相性も抜群な反面、「もう少し麺を食べたい」と物足りなさを感じる結果に。 大盛りは多すぎる、普通盛りはちょっと足りない。 そんな悩めるエンジニアが行き着いた結論がこちらです。 麺は「中盛り」+「サイドメニュー(ライス等)」 この組み合わせこそ、満腹感・満足感ともに完璧なバランスを生む黄金比だと確信しました。次回からは迷わずこのオーダーで挑みます。 下妻の新店に行かれる方も、ぜひボリューム選びの参考にしてみてください!

OSの核心をコードで学ぶならこれ!MIT教材「xv6」と電通大の日本語訳テキストが素晴らしい

MIT teaches operating systems by giving students a complete Unix-like kernel and asking them to modify it. it's called xv6, a ~6,000-line reimplementation inspired by Unix V6. processes, system calls, virtual memory, and filesystems are all there pic.twitter.com/sFiHWgMmHb — trish (@TrisH0x2A) September 22, 2026 オペレーティングシステム(OS)の仕組みを一から本格的に学びたい方に、ぜひおすすめしたい教材を見つけたのでご紹介であります。 かつて「 UNIX 4.3BSDの設計と実装 」(通称:悪魔本)などに挑んだ経験がある方も多いと思いますが、現代のLinuxやFreeBSDなどのOSは数百万行を超える巨大な規模に成長しています。いきなり本物のソースコードを読んで全体像を掴むのは、ハードルが高く挫折しやすいのが現実です。 そこで最適なのが、MITの教育用OS「xv6」であります。 👉 Xv6, a simple Unix-like teaching operating system(MIT公式サイト) xv6が学習に最適な3つの理由 コード量が約6,000行と極めてコンパクト Unix Version 6(V6)の基本設計を踏襲しつつ、無駄を削ぎ落としているため、個人でも全体のコードを読み切ることができます。 現代の標準アーキテクチャ「RISC-V(マルチコア)」に対応 古き良きUnixの設計思想を、今まさに注目を集めるRISC-V環境で学べます。 充実した講義テキストと「日本語訳」の存在 MITの公式テキストが配布されているだけでなく、電気通信大学の菅原研究室によって 日本語訳テキスト が無償公開されています。難解なカーネルの概念を母国語でじっくり追えるのは本当にありがたい環境です。 👉 RISC-V版xv6テキストの和訳(電気通信大学 菅原研究室) まず何から始めるべき? まずは和訳テキストの「第0章(OSのインターフェース)」に目を通し、興...