[WebXR] MONITOR WALL — 監視室のモニタ壁で、MSX・動画・SID を再生する
概要
MONITOR WALL は、監視室の 3D 空間にある、モニタの壁に、ゲーム、動画、曲を映すモードです。lain-lab.com のターミナルで monitor と打つと、入れます。
壁のモニタには、映すだけでなく、メニューの役目もあります。右の列の 4 枚が、操作パネルです。PC ではクリックで、Meta Quest 3 の VR では、コントローラーのレーザーで、押します。
- GAME: MSX1 のエミュレーターで、ROM を動かします
- VIDEO: MP4 などの動画を、再生します
- SOUND: SID(C64 の音楽)を再生して、3 つのボイスの波形と、スペクトラムを出します
- SINGLE / TILE / BIG: 1 枚の画面を、壁のモニタ全体に出す(SINGLE)、1 つの画像を、壁のモニタに分けて出す(TILE)、壁のモニタが手前に飛び出して、1 枚の大画面になる(BIG)、の 3 つの表示です
ROM、動画、曲は、ご自身のファイルを、追加して使います。ファイルは、パソコン(Quest)の外へ、送信されません。
入り方
- lain-lab.com を開きます。
- ターミナルに、
monitorと打ちます。 - 監視室が、表示されます。
スタートメニューから起動
トップページのスタートメニューからも起動できます。
TOPページ
PROTOCOL.LAIN // Archive
Lainの世界観で作る学習・実験場。
lain-lab.com技術記事
[Astro] #177 監視室のモニタ壁で MSX・動画・SID を動かす — Quest 3 の VR で、壁がそのままメニューになる
監視室の GLB の、モニタの壁を使って、MSX のゲーム、MP4 の動画、SID の曲を再生する「モニターモード」を作りました。
lain-lab.comクレジット
sketchfabで公開されている監視室の 3Dモデルを見て着想を得て、空間にある、モニタの壁を使って、ゲームと動画と曲を映すモードを作ってみました。
クリエイターは wa_rouk様。
wa_rouk
View the profile and 3D models by wa_rouk. just a werewolf using blender
sketchfab.comSurveillance room - Download Free 3D model by wa_rouk
An old unfinished project that I didn’t want to trash. Baked in Eevee using texture projections. A full yellow cel-shaded surveillance room with retro design. Originally, two characters are sitting and presses the button if anything moves on any screen. - Surveillance room - Download Free 3D model by wa_rouk
sketchfab.comスクリーンショット
監視室
操作パネル
右列の 4 枚のモニタが、操作・情報パネル。
VIDEO
GAME
SOUND
動画(WebXR)
アプリの特徴
- 壁がメニュー: 右の列のモニタが、操作パネルです。VR でも、レーザーだけで、ほとんどの操作ができます
- 3 つの映すもの: MSX のゲーム、動画、SID の曲を、同じ壁で切り替えます
- 3 つの表示: SINGLE、TILE、BIG。BIG は、壁のモニタが手前に飛び出して、すきまなく 1 枚になります。どの映すものでも、使えます
- ファイルは端末の中だけ: 追加したファイルは、ブラウザの IndexedDB に保存されます。サーバーには、上げません
- Meta Quest 2/3 の VR に対応: PC のブラウザでも、使えます
まず試す
- lain-lab.com を開いて、ターミナルに
monitorと打ちます。 - 左の ADD FILES を押して、ROM(
.romなど)、動画(.mp4など)、SID(.sid)を選びます。ADD FOLDER なら、フォルダの中身を、まとめて追加できます。 - 右の列の、一番下のモニタ(MODE)で、SOURCE の VIDEO、GAME、SOUND を選びます。
- 上のモニタの一覧(ファイルリスト)から、ファイルを選びます。
- 表示を変えたいときは、LAYOUT の SINGLE、TILE、BIG を選びます。
動画は、最初から 1 本、入っています。ファイルを追加しなくても、VIDEO で試せます。
使い方
1. 操作パネル
右の列の、4 枚のモニタです。
| モニタ | 役目 |
|---|---|
| MODE(一番下) | LAYOUT(SINGLE / TILE / BIG)と、SOURCE(VIDEO / GAME / SOUND)の切り替え |
| オプション(下から 2 番目) | SOURCE ごとの操作 |
| 一覧(上から 2 番目) | ROM、動画、曲の一覧。PREV / NEXT で、ページを送ります |
| STATUS(一番上) | 状態の表示と、EXIT(モニターモードを出る) |
オプションの中身は、SOURCE で変わります。
| SOURCE | オプション |
|---|---|
| GAME | マッパーの選択(AUTO、NONE、KONAMI、SCC、ASCII8、ASCII16 など)と、RESET |
| VIDEO | PAUSE(再生・一時停止)と、MUTE(ミュート) |
| SOUND | PLAY / PAUSE と、PREV / NEXT(前後の曲) |
2. ファイルを追加する
ADD FILES と ADD FOLDER は、画面の左にある、HTML のボタンです。拡張子で、自動的に振り分けます。
| 種類 | 拡張子 | 保存の単位 |
|---|---|---|
| ROM(GAME) | .rom、.bin、.msx、.mx1 | ROM ごとに、マッパーも覚える |
| 動画(VIDEO) | .mp4、.webm、.m4v、.mov | ファイル |
| 曲(SOUND) | .sid | ファイル |
- ROM は、0 バイトのものと、512 KB を超えるものは、追加されません
- 追加したファイルは、端末の中(IndexedDB)に、残ります。次に開いたときも、一覧に出ます
- VR の中では、ファイル選択のダイアログが開きません。 ファイルの追加は、VR に入る前に、2D の画面で、済ませてください
3. GAME(MSX)
MSX1 のエミュレーターで、ROM を動かします。
- 一覧から ROM を選ぶと、起動します
- マッパーは、AUTO のままで、たいていは動きます。動かないときは、オプションで、別のマッパーを選びます。選んだマッパーは、その ROM について、覚えます
- RESET で、ROM を、最初から起動し直します
- キーボードの入力は、GAME のときだけ、エミュレーターに渡します
- VR では、左のスティックが十字キー、トリガーがスペース、A / X ボタンが N(2 つ目のボタン)です
4. VIDEO
動画を、壁に映します。PAUSE で、一時停止と再生を切り替えます。MUTE で、音を切ります。VIDEO 以外の SOURCE に切り替えると、動画は止まります。
5. SOUND(SID)
SID の曲を再生して、波形を出します。
- 一覧から曲を選ぶと、再生が始まります
- 画面には、曲の名前と、PAL / NTSC、SID のチップ(6581 / 8580)、3 つのボイスの波形、その下に、スペクトラムが出ます
- PLAY / PAUSE と、PREV / NEXT で、操作します
SID Player(lain-lab.com の別のページ)の、再生の仕組みを、そのまま使っています。EQ、鍵盤、プレイリストは、ありません。
6. 表示(SINGLE / TILE / BIG)
| 表示 | 内容 |
|---|---|
| SINGLE | 1 枚の画面を、壁の中央の、1 枚のモニタに出す |
| TILE | 1 つの画像を、壁のモニタに、分けて出す |
| BIG | 壁のモニタが、手前に飛び出して、すきまのない 1 枚の大画面になる。もう一度押すと、壁に戻る |
SOURCE や LAYOUT を切り替えると、BIG は解除されて、壁に戻ります。
7. 動き回る
PC のブラウザでは、W A S D で、前後左右に動けます。Q と E で、上下に動けます(GAME のときは、キーボードを、ゲームに渡すので、動けません)。
VR では、Quest のコントローラーのレーザーで、右の列の操作パネルを、押します。レーザーは、操作パネルのモニタに、向けたときにだけ、出ます。
8. 終了する
STATUS のモニタの EXIT で、モニターモードを出ます。
対応していないもの
| 内容 | 扱い |
|---|---|
| MP3 などの、普通の音楽ファイル | ありません。SOUND は、SID 専用です |
| SID のサブ曲の切り替え | ありません。先頭の曲だけです |
| VR の中での、ファイルの追加 | できません。VR に入る前に、追加してください |
| MSX2 以降 | 対応していません。MSX1 だけです |
| 512 KB を超える ROM | 対応していません |
| ゲームのセーブデータの保存 | ありません |
| スマートフォンでの動作 | 確認していません |
注意事項
- 動作の確認は、PC のブラウザと、Meta Quest 3 です。Quest では、GAME、VIDEO、BIG、レーザーでの操作を、確認しました。SOUND(SID)は、PC のブラウザでだけ、確認しています。Quest の VR では、確認していません
- VR での FPS は、測っていません
- SID の、一部の曲では、再生の途中で、音が止まることがあります。
Nemesis_MSX_OST.sidで、起きました。原因は、わかっていません。SID Player は、もともと、一部の曲に対応していません - ROM、動画、曲は、ご自身が、使ってよいものを、使ってください。ファイルは、こちらでは、配っていません
- ファイルは、端末の中に、保存されます。ブラウザのサイトデータを消すと、消えます
よくある質問 (FAQ)
Q. VR の中で、ファイルを追加できません。
A. VR の中では、ファイル選択のダイアログが、開かないためです。VR に入る前に、ADD FILES で、追加してください。追加したものは、端末の中に残ります。
Q. VR に入ると、右の列のモニタ以外に、レーザーが出ません。
A. 仕様です。レーザーは、押せるモニタ(右の列の操作パネル)に、向けたときにだけ、出ます。
Q. SOUND で、MP3 を再生できません。
A. SOUND は、SID 専用です。MP3 は、再生できません。
Q. SOUND で、曲が、途中で止まります。
A. 一部の SID の曲で、起きます。SID Player も、一部の曲に、対応していません。別の曲で、試してください。
Q. GAME で、ROM が、動きません。
A. マッパーが、合っていない可能性があります。オプションで、別のマッパーを選んでから、RESET を押してください。MSX1 の ROM だけに、対応しています。
Q. ファイルは、どこかに送信されますか。
A. 送信しません。追加したファイルは、端末の中(IndexedDB)にだけ、保存されます。
Q. 追加したファイルを消したいです。
A. ブラウザの、サイトデータを消してください。個別に消す機能は、ありません。
技術記事
実装の詳細は、技術記事にまとめています。
[Astro] #177 監視室のモニタ壁で MSX・動画・SID を動かす — Quest 3 の VR で、壁がそのままメニューになる
監視室の GLB の、モニタの壁を使って、MSX のゲーム、MP4 の動画、SID の曲を再生する「モニターモード」を作りました。
lain-lab.com更新履歴
| バージョン | 日付 | 内容 |
|---|---|---|
| v1.0 | 2026/10/17 | 初回公開(GAME・VIDEO・SOUND、SINGLE・TILE・BIG、壁の操作パネル、Quest 3 の VR 対応) |
クレジット
- 監視室の 3D モデル: SATORI / 第703工房(おしり座敷さん / sirohakumei)
- MSX エミュレーター: 自作(Z80 / MSX1)
- SID 再生: reSID と fake6502 を WASM にした、SID Player の再生部分
- 動画の再生とエミュレーターの描画: Three.js
ご自身で用意した、ROM、動画、曲の権利は、それぞれの権利者に、あります。MONITOR WALL は、個人の制作物です。
3D model
wa_rouk
View the profile and 3D models by wa_rouk. just a werewolf using blender
sketchfab.comSurveillance room - Download Free 3D model by wa_rouk
An old unfinished project that I didn’t want to trash. Baked in Eevee using texture projections. A full yellow cel-shaded surveillance room with retro design. Originally, two characters are sitting and presses the button if anything moves on any screen. - Surveillance room - Download Free 3D model by wa_rouk
sketchfab.com関連記事
[WEB App] SID Player v3.2 — reSID + fake6502 WASM + AudioWorklet によるブラウザ完結型 Commodore 64 SIDプレイヤー // PROTOCOL.LAIN
reSID(SIDチップエミュレーター)とfake6502(6502 CPUエミュレーター)をEmscriptenでWASMビルドし、AudioWorkletでリアルタイム音声合成。PSIDヘッダー解析、C64メモリマップ配線、Canvas 2D / Three.js 3Dリボン / Audio-Reactiveテレインの5モードビジュアライザー、UnrealBloomPass+OrbitControls、10バンドEQ(8プリセット+カスタム保存)、SIDレジスタ→MIDIノート変換ピアノ鍵盤表示、プレイリスト管理、Duration設定による自動送り搭載。
lain-lab.com
[WEB App] MSX Emulator v1 — ブラウザで動くMSXエミュレーター (Z80コア・VDP・SCC音源 実装) // PROTOCOL.LAIN
JavaScript / Web Audio API (AudioWorklet) で構築したMSXエミュレーター。32KBフラットROMに加え、大容量MegaROMマッパー(Konami, Konami SCC, ASCII 8KB, ASCII 16KB)に対応。AY-3-8910 (PSG) と5ch波形メモリ音源 (SCC) のリアルタイム合成、アスペクト比4:3維持のレスポンシブ・フルスクリーン表示、キーボード操作に対応。
lain-lab.com
[JavaScript] MSXエミュレーターを完成させる。MegaROMマッパー・PSG/SCC音源・AudioWorkletでのサウンド合成 // PROTOCOL.LAIN
PROTOCOL.LAIN のアーカイブ記事です。
lain-lab.comZ80 Emulator Project — lain-lab.com
フルスクラッチ JavaScript Z80 コアと、その上に構築されたレトロシステムエミュレーター群
lain-lab.com6502 Emulator Project — lain-lab.com
フルスクラッチ JavaScript MOS 6502/6510 コアと、その上に構築されたレトロシステムエミュレーター群
lain-lab.com