メガドライブ相当のゲームをC言語のみで自作可能なOSSのゲーム機「VGS-Zero」
個人サークル「SUZUKI PLAN」がゲーム機エミュレーターおよびSDKの「Video Game System - Zero(VGS-Zero)」を2024年1月1日に公開しました。VGS-ZeroはRaspberry Pi Zero 2 Wのベアメタル環境で動作し、メガドライブ相当のゲームを動作させられるとのことです。
GitHub - suzukiplan/vgszero: SUZUKI PLAN - Video Game System Zero
https://github.com/suzukiplan/vgszero
Z80+C言語で16ビット機級の本格的なゲームが創れるゲーム機(VGS-Zero)を作ってみた #RaspberryPi - Qiita
https://qiita.com/suzukiplan/items/8a740b593816ef9ef565
VGS-ZeroはRaspberryPi Zero 2Wをゲーム機に変えるエミュレーターです。RaspberryPiをゲーム機として使うプロジェクトは他にも存在していますが、既存のプロジェクトはRaspberryPiにインストールしたLinuxの上で動作するものが多く、「不要なデータの読み込みが発生する」「起動時間が長い」といった問題を抱えています。VGS-ZeroはLinuxの代わりに動作する独自OSを含んでおり、起動時間を2~3秒に抑えることに成功しています。
VGS-Zeroにはカーネル本体と別に、ゲームギアやネオジオなどで採用されていたCPU「Z80」のエミュレーターや、グラフィック出力用の「Video Display Processor(VDP)」のエミュレーター、チップチューン音源「Video Game Sound(VGS)」が搭載されています。カーネルはGPLライセンスで開発されているベアメタル環境「Circle」をベースに開発されていますが、カーネル部分とゲーム部分を分離することでゲームソフト側のライセンスを自由に設定することを可能としています。
各種エミュレーターもSUZUKI PLANによって開発されたもので、Z80エミュレータは16KBのRAMをゲームのためにフル活用することが可能。また、Z80エミュレーターはMITライセンスで開発されており権利上の問題を回避できることも大きな特徴です。Z80エミュレーターのソースコードは以下のリンク先で確認できます。
GitHub - suzukiplan/z80: Single header Z80 emulator for C++ (C++11 or later)
https://github.com/suzukiplan/z80
SUZUKI PLANによると、Z80には「2のn乗を除く乗算、除算、剰余算やアークタンジェント(角度を求めるために必要な三角関数)の計算処理」の性能が低いという欠点が存在するとのこと。VGS-ZeroにはZ80が苦手とする計算処理を担うためのハードウェアエミュレーター「High-speed Accumulator for Game(HAGe)」も搭載されており、Z80単体では高速動作させることの難しい弾幕シューティングゲームなども高速動作させられます。また、C言語の「memset」や「memcpy」に相当するハードウェアエミュレーターも搭載しているため、C言語のみでメガドライブなどの16ビット商用ゲームと同等のゲームを開発可能です。以下のポストでは、SUZUKI PLANが開発したVGS-Zero用ゲームソフト「Battle Marine」のデモ映像を確認できます。
VGS-Zero版Battle Marineをリリースしました。
— SUZUKI PLAN (@suzukiplan) January 28, 2024
RaspberryPi Zero 2W をお持ちでしたら以下のリンクから無料でダウンロードして遊べます。https://t.co/DYM43l6ikd
移植にしばらく時間が掛かりそうですがWindows… pic.twitter.com/DmFJCEUNxG
なお、VGS-ZeroはSUZUKI PLANが「自身にとってゲームを作りやすい環境の創出」を目指して開発したものですが、VGS-Zeroが商業で通用するプラットフォームなのかを試すべく「VGS-ZeroをNintendo Switchで使えるSDKにする」という壮大な目標も掲げられています。記事作成時点では任天堂のNintendo Switch開発リソース提供要件である「Steam、スマートフォンまたは家庭用ゲーム機でのゲーム販売実績」をクリアするためにWindows版ゲームの開発が進んでいます。
Steam版Battle MarineはUWPではなく普通のデスクトップアプリで作成する方針に変更。映像と音声の出力はとりあえずできたっぽい。キー&ジョイパッド入力がまだなので遊べませんがSteamの準備を平行して進めようかなと思っているところです(どうやら時間が掛かるらしいので) pic.twitter.com/0no82UlWUc
— SUZUKI PLAN (@suzukiplan) February 1, 2024
・関連記事
「バッテリーなしで動作するゲームボーイ」を開発した猛者が現る - GIGAZINE
1996年発売の「ゲームボーイポケット」を折りたたみ式に魔改造した猛者現る - GIGAZINE
10年以上交換不要な原子力電池を自作して携帯ゲーム機に組み込んだ猛者が登場 - GIGAZINE
ゲームボーイアドバンスのクラッシュ音から元のゲームを復元することに成功 - GIGAZINE
世界最大のニンテンドー3DSを自作した猛者が現れる、巨大なだけでなく3D立体視もしっかり再現 - GIGAZINE
手のひらサイズの「ゲームキューブクラシック」を自作してしまった猛者が登場、もちろん実際にプレイすることも可能 - GIGAZINE
・関連コンテンツ