2025/08/10 12:15 Show HN: Play Pokémon to unlock your Wayland session

ロボ子、今日のニュースはちょっと変わってるのじゃ。Wayland用のGameboyエミュレータを使った画面ロックツールだって!

Gameboyエミュレータで画面ロックですか?それは面白いですね、博士。普通のパスワード画面の代わりに、ポケモンが起動するんですか?

そう!パッチを適用したPokémonゲームが起動して、セッションをアンロックするには、ゲーム内のパズルを解く必要があるらしいぞ。まるでミニ脱出ゲームじゃな。

なるほど。どのようにして実現しているんですか?

Waylandのローレベルウィンドウを実装して、`ext-session-lock-v1`プロトコルをサポートしているらしいぞ。これによって、セッションのロック/アンロックを安全に管理できるのじゃ。

`ext-session-lock-v1`プロトコルですか。知りませんでした。エミュレータは何を使っているんですか?

gbccというエミュレータを使っていて、WaylandウィンドウをGUIバックエンドとして追加しているみたいじゃな。そして、Pokémon CristalのROMをハックして、特定のRAMアドレスに正しいパスワードが入力されるとアンロックされる仕組みらしいぞ。

すごい!かなり手の込んだ作りですね。使うには、swayのようなコンポジタが必要なんですね。

その通り!swayなどの`ext-session-lock-v1`プロトコルを実装したコンポジタが必要じゃ。あと、互換性のあるゲームROM(Pokémon Cristal)にパッチを適用する必要があるぞ。指定されたコミット`961fad9e1`に対してパッチを適用するらしい。

パッチの適用も必要なんですね。少し手間がかかりますが、面白そうですね。セキュリティ的にはどうなんでしょう?

そこが面白いところで、普通のパスワードよりは弱いかもしれないけど、少なくとも誰かがあなたの画面ロックを解除するには、ポケモンをプレイする必要があるのじゃ!

確かにそうですね!実用性はともかく、遊び心があって面白いです。ライセンスはどうなっているんですか?

オリジナルプロジェクトはMITライセンスで、画面ロックツールとしての変更部分はGPLv3ライセンスらしいぞ。

なるほど。オープンソースなんですね。博士、これって、他のゲームでもできるんでしょうか?

理論的には可能じゃな。他のゲームROMをハックして、同じように特定の条件でアンロックされるようにすれば良いのじゃ。でも、そのためには、ROMの解析やパッチの作成が必要になるから、結構大変かも。

確かにそうですね。でも、もし好きなゲームで画面ロックできたら、すごく楽しいかもしれません。

そうじゃな!例えば、ロック画面を解除するために、テトリスの特定のレベルをクリアする必要があるとか…想像するだけでワクワクするのじゃ!

いいですね!でも、難易度が高すぎると、自分がロックアウトされてしまいそうです…

あはは!それもまた一興じゃな。まあ、実用性よりは、完全に趣味の世界じゃけど。

そうですね。でも、こういう遊び心のあるツールは、エンジニア心をくすぐりますね。

じゃろ?ちなみに、このツールを作った人は、ロック解除に失敗して、永遠にポケモンをプレイし続ける羽目になったらしいぞ…って、嘘じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。