萌えハッカーニュースリーダー

2025/10/11 22:17 Programming Space Game for x86 in Assembly Without an Operating System

出典: https://hackaday.com/2025/10/10/programming-space-game-for-x86-in-assembly-without-an-operating-system/
hakase
博士

ロボ子、今日はOSなしでゲームを作るっていう、ちょっぴりクレイジーだけど面白い話をするのじゃ!

roboko
ロボ子

OSなしでゲームですか?それは一体どういうことでしょう、博士?

hakase
博士

簡単に言うと、コンピュータのハードウェアに直接ゲームを動かすってことじゃ。ハッカーのInkboxさんが、その方法を紹介してくれたみたい。

roboko
ロボ子

なるほど。でも、それってBIOSとかUEFIとか、そういうのが関係してくるんですよね?

hakase
博士

その通り!昔はBIOS、今はUEFIが主流じゃな。UEFIは、Intelが90年代後半に開発したもので、TianoCore EDK IIみたいなツールを使って、コミュニティが色々作ってるみたいじゃぞ。

roboko
ロボ子

UEFIって、具体的にどんな役割があるんですか?

hakase
博士

UEFIは、ブートサービスとランタイムサービスっていうのを提供してくれるんじゃ。ブートサービスはメモリ管理とかUEFIアプリの実行、ランタイムサービスはシステムクロックとかシステムリセットを担当するのじゃ。

roboko
ロボ子

ふむふむ。x64 CPUが起動するとき、何が起こるんですか?

hakase
博士

x64 CPUが起動すると、まずアドレス0xfffffff0にジャンプして、初期化命令を実行するんじゃ。その後、保護モードに入って、ファームウェアを検証したり、メモリを初期化したり、ストレージやグラフィックドライバを読み込んだりして、最終的にUEFIブートマネージャーを実行するのじゃ。

roboko
ロボ子

UEFIブートマネージャーは、何をするんですか?

hakase
博士

UEFIブートマネージャーは、ファームウェアの設定を読み込んだり、WindowsブートマネージャーとかGRUBみたいなEFIアプリケーションを読み込んだりするのじゃ。

roboko
ロボ子

開発環境についても記事に書かれてますね。AMD Ryzen AI 9 HX 370 CPUに32GBのDDR5 RAMですか。すごいスペックですね。

hakase
博士

アセンブリ言語でゲームを記述して、コンソールへの読み書きをしたり、QEMUでテストしたり、USBサムドライブからイメージを読み込んだりするみたいじゃな。

roboko
ロボ子

システム時刻機能も使うんですね。ナノ秒単位で読み取るには、UEFI Specification Release 2.10を参照する、と。

hakase
博士

そうじゃ。グラフィックス出力プロバイダをロードして、適切なビデオモードを設定して、BLT操作で画面に書き込むんじゃ。プログラムを複数のCPUコア(24コア!)で実行することもできるみたいじゃぞ。

roboko
ロボ子

x86向けのSpace Gameを実行したんですね。簡単なグラフィックスプログラミングとマウス入力で、OSなしでゲームが作れるなんて、夢がありますね。

hakase
博士

まさに!OSなしでゲームを作るって、ハードウェアを直接制御する楽しさがあるし、パフォーマンスも最大限に引き出せる可能性があるのじゃ。でも、ちょっとハードルが高いから、まずは簡単なゲームから試してみるのがオススメじゃな。

roboko
ロボ子

確かにそうですね。でも、博士ならきっと、OSなしで動くすごいゲームを作れそうですね!

hakase
博士

むむ、ロボ子よ。褒められても何も出ないぞ。…いや、OSなしで動く、ロボ子育成シミュレーションゲームを作ってあげても良いのじゃぞ?

roboko
ロボ子

えっ、それは…ちょっと恥ずかしいです!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search