現在、SDL はDOSもサポートしています。

2026/04/25 1:20

現在、SDL はDOSもサポートしています。

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

要約

Japanese Translation:

最新の DosBox-X 更新は、Sound Blaster サウンドカードやレガシー DOS 環境において特に顕著なパフォーマンスと安定性の向上をもたらします。主な改善点としては、ミキシングロジックを割り込みハンドラからメインループへ移動させ、DMA バッファ処理を更新することによって、重要なオーディオレイテンシ問題を解消したことです。画質の向上については、複数の画像ページを持つ VBE モードに特化したダブルバッファリングページフラッピングを実装したことに加え、バンク付きフレームバッファへのアクセス処理や完全な VBE ステートの復元を改善した点が挙げられます。具体的な技術的な修正としては、偽の読み込みにより引き起こされた以前の遅延を解消し、起動速度を即座化させるもの、拡張スキャンコードおよび Pause キーに対するキーボードサポートを強化したもの、そしてジョイスティックポーリングレートを約 60 Hz に最適化したものが含まれます。プラットフォーム全体の安定性はさらに強化され、SDL インテグレーション内における DOS システムのための排他的な処理——例えば特定 GTK 機能を DJGPP から除外することや MS-DOS 環境向けの CMake 検出ロジックの追加——によって、クラッシュがなくなり、複雑な回避策なしに様々なレガシー構成で滑らかな動作を確保することが実現されました。

本文

また、30 つのコミットが 2026 年 4 月 13 日 08:50 に追加されました。

  • シーク操作を行わないと壊れてしまいます。 fflush() をシーク前に実行するだけでよいでしょうか?
  • DosBox-X が Sound Blaster と何かで問題を抱えていたことが分かりました。標準の DosBox は、割り込みハンドラから直接正しく動作し、バッファサイズを 2 倍にすることなく正常です。
    • バッファリングを無効にしたままにする方法よりもはるかに高速で、fseek の後に不正な読み取りが発生するという問題も回避できます。test/sample.wav を SDL_LoadWAV で処理する必要も数秒かからず、正しいデータが得られます。
    • LoadWAV でこれが引き起こされているのは、シーク/読み取りの間に malloc でデータを確保しており、それが djgpp の転送バッファを変化させているからかもしれません。あるいは Fat DS のトリックで混乱させているのかもしれません。分かりません。デバッグする時間がありませんでした。実際には libc 側の bug でじっさいに djgpp に存在する可能性も十分にあります。
  • これは、SDL 1.2 で Mac OS Classic 向けに使った古い手法です。ハードウェア割り込み中に入力のコールバックを呼び出しました。割り込みが発火した際にオーディオがロックされている場合は、それを読み取り記録し、直ちに返却します。ロックが解放された際、もし割り込みが発火していた場合は、その時点でオーディオデバイスの反復処理を実行します。
    • SDL3 にはアプリケーション向けの大規模なデバイスロックがありません(少なくとも)。そのため、どの SDL_AudioStream がロックされているのかをカウンタで管理しており、おそらく十分です。
  • これは VESA インターフェースを使ってディスプレイを制御し、ソフトウェアレンダラーと互換性を持っています。
    • イベントはまだ接続されていないため、各実行時に DosBox を閉じる必要があります(笑)。
  • これにはレンダリングのサンプルのほとんどが含まれ、SDL_GetBasePath() を使ってロードするテクスチャを検出しており動作します。
  • もちろん Quake 1 はこれをより良く解決していますね、haha。これは賢いです:メモリ使用量は少なく、非常に単純で、割り込みハンドラとの同期についても心配する必要はありません。割り込みが発火するタイミングに関わらず、両側ともに安全だからです。
  • [sdl-ci-filter djgpp]

    [sdl-ci-artifacts]
    • SDL_runapp.c
      : SDL_RunApp() のジェネリック版を無効にするため、DOS 固有のものがコンパイルされている際に SDL_PLATFORM_DOS を除外リストに追加しました。
    • SDL.c
      : DOS で SDL_Gtk_Quit() を除外。DJGPP は unix を定義しており、これにより SDL_PLATFORM_UNIX が設定されますが、DOS には GTK / ディスプレイサーバーがありません。GTK ソースはコンパイルされていないため(DOS では CMake UNIX が false)、リンクエラーが発生していました。
    • sdlplatform.cmake
      : CMAKE_SYSTEM_NAME=DOS からプラットフォームを正しく検出できるように、SDL_DetectCMakePlatform に DOS ケー

同じ日のほかのニュース

一覧に戻る →

2026/04/25 4:30

私のオーディオインターフェースは、SSH がデフォルトで有効になっています。

## Japanese Translation: Rodecaster Duo は、ファームウェア署名検証の欠如に起因する深刻なセキュリティ脆弱性を有しています。この欠陥は、研究者がコンテナを通じて SSH パスワード認証を有効にする自製ファームウェアの開発および展開に成功した事例から明らかとなりやすく、カスタムソフトウェアへのフラッシングを可能にしています。同装置は USB 書き込みを無効化することでブリック状態を防ぐように設計されていますが、この制限は回避可能であり、初期試みが失敗した場合(例:macOS)や予期せずトリガーされた場合でもファームウェア更新が進められる可能性があります。USB HID プロトコルの解析により、ファームウェア更新はレポート 1 を介して送信される単純な ASCII コマンド('M」と 'U」)によって開始されることが明らかとなり、実際のファイル操作にはディスクのマウント、`archive.tar.gz`および`archive.md5`の複製、許可付きパーミッションの設定(777)、そして再起動が含まれます。同装置はデフォルトで公開鍵認証とハードコードされた鍵を使用した SSH が有効になっており、これらの鍵が変更されない場合、セキュリティリスクを引き起こします。これらの欠陥についてサポートチケットへの回答はなく、システムのオープンな性質が、この専門的なオーディオツールを有益な改変のプラットフォームであると同時に、潜在的なセキュリティ侵害のプラットフォームにも変えつつあります。

2026/04/25 4:01

クラシック・アメリカン・ダイナー

## Japanese Translation: 米国のダイナーは、輸送史と料理文化の独自の融合を表しており、20 世紀に鉄道輸送用に製造された列車車から、象徴的な路辺のレストランへと進化してきました。歴史記録によれば、主要な高速道路沿いには多様なメニューが提供されており、1940 年夏のマーランド州バーウィン近郊のダイナーではホットドッグが 5 セント、プレートが 25 セント、ニューヨーク市の施設では 1959 年に朝食プレートが 75 セントで提供されていました。長い労働時間に対応するため、多くの場所はアバディーン(マリーランド州)などで見られるように 24 時間営業のモデルを採用し、トラックドライバーだけでなく一般住民もアクセスできるようにしました。国会図書館はこれらの施設の建築的多様性を捉えた広範な写真アーカイブを保管しており、ジョージア州カラムスにあるルート 27 ダイナー(韓国料理も販売している)の波打つ金属製の外観から、バーモント州チェスターにある「ストリームライン」アルミニウム仕上げのクラウニーガールダイナーまで多岐にわたります。これらの画像は単なる食料供給を超え、ダイナーを米国人の好意と国家の記憶を象徴する強力なシンボルとして示しており、20 世紀初頭からの文書からキャロル・M・ハイズミスの作品のような現代アーカイブに至るまで、ピジョンフォージにあるサンライナーダイナーやフェニックスにある5&ダイナーなどの現場を捉えています。

2026/04/24 23:28

過剰な思考、スコープクリープ、そして構造的相違によって引き起こされるプロジェクトへの sabotaging です。

## Japanese Translation: 著者は「やってみるか」という哲学を提唱し、広範な調査よりも即時の作成を優先することで楽しみを保ち、スコープの蔓延を防ぐことを重視する。この転換は、ハードウェアのプロトタイピングインターフェース、Clojure+Rust 融合言語、CAD プログラミングといった長年にわたる技術的関心を扱うが、焦点のない成功基準により数百時間の投入にも関わらず合成された解決策をもたらさず、こうしたサイクルを打破するために著者は迅速なプロトタイピングに注力する。友人の Marcin と一緒に週末プロジェクトとして製作した合板の棚は、機能的成果に絞って完璧な仕様ではなくてはしごを作ったものであり、逆にリソースが不要な機能や過剰な調査に浪費されるときには失敗する。具体的には、LLM エージェントプロジェクト(Finda スタイルのファイルシステム検索)でアンカー機能を見捨てること、difftastic、semanticdiff.com、diffsitter などのツールを数時間レビューして高レベル構造を正しく処理できないことが判明した例などが挙げられる。こうした限界に失望した著者は、Tyvek/ライトディフューザー材料の EU ベンダーを探したり、Coinbase クリプト破産分析から酵母ワクチンや Loon Lisp まで幅広い話題に触れたりする雑多な更新事項も記録している。