TetrOS - ブートローダー内に収まる極小サイズのテトリス実装

S 20161005 222343

世界的な人気ゲームテトリスは、その人気ゆえにさまざまなプラットフォームや環境へ移植されています。本日紹介する「TetrOS」は、その中でも究極の限界にチャレンジする実装の一つ。なんと512バイトのブートセクター内に格納できる、わずか446バイトのサイズで実装された超軽量テトリスゲームです。

446バイトというサイズは、ドライブに存在するマスターブートレコード(MBR)のファーストブートローダーの限界サイズです。TetrOSはその内部にすっぽりとおさまるため、実行するのに他のOSを必要としません。そのため一種のオペレーティングシステムであるという意味が、TetrOSの末尾の「OS」には込められています。

Code

以下実行方法を説明します。

実行方法

qemuあるいは実機を使用する場合USBメモリなどにコピーして実行します。簡単なのはエミュレーターのqemuを使用する方法で、リポジトリをcloneし「make run」で実行することができます。

git clone https://github.com/daniel-e/tetros.git
cd tetros
make run

ただしqemuがインストールされていることが必要です。Macの場合「brew install eqmu」などでインストールすることができます。

操作方法は以下の通り:

  • 左右矢印キー: ブロックの移動
  • 上矢印キー: ブロックの回転
  • 下矢印: ブロックのドロップ

qemuでTetrisをプレイする様子を撮影した動画が公開されています。

まとめ

TetrOSのソースコードはアセンブラで記述されています。オペレーティングシステムの起動方法に興味のある方は解読にチャレンジしてみてはいかがでしょうか。

I screenshot1 タイトル TetrOS
公式サイト https://github.com/daniel-e/tetros
ソフトアンテナ https://www.softantenna.com/softwares/7487-tetr-os
説明 ブートローダーに収まる極小サイズのテトリス実装。

スポンサーリンク