Linux
,Mac OS X
,Windows
,Android
及びiOS
対応のアプリを開発するSDK
です- 全てのプラットフォームのゲームの実装を一本化できる特徴があります
- 使用するプログラム言語は
C/C++言語
のみです
Linux
,Mac OS X
またはWindows
でアプリを開発し、完成後Android
版をビルド、その後iOS
へポーティングという流れで開発します- VGSでは
Linux
,Mac OS X
およびWindows
はサンドボックス環境という位置づけで扱います vgs2mkpj
コマンドでプロジェクトを作成- 自プロジェクトの game.c にゲームの処理を記述
- グラフィックと音のリソースを準備
GSLOTxxx.CHR
に画像リソースを準備ESLOTxxx.PCM
に効果音リソースを準備BSLOTxxx.BGM
に音楽リソースを準備DSLOTxxx.DAT
に任意データリソースを準備
vgs2rom
コマンドで ROMDATA.BIN を生成- ビルド(後述)
- VGSのBGM機能だけ抜き出したDLLを libディレクトリ で提供しているので、そちらをお使いください。
- このDLLのライセンスは後述のVGS本体のライセンスと同じです
- 2-Clause BSDライセンスで提供しています
- LICENSE.txtを参照してください
- 本リポジトリに含まれるソースコードの 一部 若しくは 全部 を流用 又は
VGS mk-II SR
を用いて製作されたプログラムを配布又は販売する場合、プログラムの利用者が参照できるドキュメント(スマートフォンアプリの場合は公開するアプリストアに掲載される説明文 又は アプリ内で参照できるテキスト)に LICENSE.txt 記載の Copyright 表記を記載してください - 本リポジトリに含まれるソースコードの 一部 若しくは 全部 を流用 又は
VGS mk-II SR
を用いて製作されたプログラムを配布又は販売の結果発生した損失や損害等につき、当方は一切の責任を負わないものとします
以下のドキュメントを参照してください。
Linux
: README-Linux.mdMac OS X
: README-MacOSX.mdWindows
: README-Windows.md
VGSでは、グラフィックス、効果音、音楽、任意データ(ゲームのステージ情報など)を vgs2rom
コマンドでロムデータ形式に結合したもの ( ROMDATA.BIN
) がゲームのアセット情報となります。
GSLOT000.bmp
〜GSLOT255.bmp
というファイル名でromdata
ディレクトリに配置します- ファイル名の
000
〜255
はvgs2_putBG関数
やvgs2_putSP関数
で指定するslot番号(n)
に対応します GSLOTxxx.bmp
は 8bitカラー(256色) かつ 256 x 256 ピクセル以下のbitmap形式にする必要があります- 新しい
GSLOTxxx.bmp
を追加する場合,romdata/makefile
ファイルを編集してください
ESLOT000.wav
〜ESLOT255.wav
というファイル名でromdata
ディレクトリに配置します- ファイル名の
000
〜255
はvgs2_eff関数
やvgs2_effstop関数
で指定するslot番号(n)
に対応します ESLOTxxx.wav
は 22050Hz, 16bit, 1ch(mono) の wav形式でなければなりません- 新しい
ESLOTxxx.wav
を追加する場合,romdata/makefile
ファイルを編集してください
BSLOT000.mml
〜BSLOT255.mml
というファイル名でromdata
ディレクトリに配置します- ファイル名の
000
〜255
はvgs2_bplay関数
で指定するslot番号(n)
に対応します BSLOT000.mml
は VGS独自形式の Music Macro Language です- MMLの書き方はMML.mdを参照してください
- 新しい
BSLOTxxx.mml
を追加する場合,romdata/makefile
ファイルを編集してください
DSLOT000.DAT
〜DSLOT255.dat
というファイル名でromdata
ディレクトリに配置します- ファイル名の
000
〜255
はvgs2_getdata関数
で指定するslot番号(n)
に対応します - DSLOTのファイル内容は不問です
- マップデータ や キャラクタデータ など、任意形式のデータを VGSアプリ で用いる時に使います
romdata/makefile
では以下の手続きを実行しています。
GSLOTxxx.bmp
をvgs2bmp
コマンドでCHR
形式というVGS独自形式に変換ESLOTxxx.wav
をvgs2wav
コマンドでPCM
形式というVGS独自形式に変換BSLOTxxx.mml
をvgs2mml
コマンドでBGM
形式というVGS独自形式に変換GSLOTxxx.CHR
,ESLOTxxx.PCM
,BSLOTxxx.BGM
,DSLOTxxx.DAT
をvgs2rom
コマンドでROMDATA.BIN
に結合
API.md を参照してください。
Command.md を参照してください。
- 最大同時発色数: 16777216色中256色
- 解像度: 160 x 200
- VRAM: スプライト1面 + BG1面
- CPU
- 現状 none-emulation (各対応OSのnative codeにcompile & 実行)
- 将来的には独自の仮想CPUにしたい
- 発想的には WebAssembly に近いので、WebAssembly の仕様がいい感じだったら乗っかるかもしれない(いい感じではなかったら、やはり独自開発する)
- PPU
- スプライト機能
- GSLOTからの矩形転送
- 回転
- 1/2縮小(高速)
- 任意サイズの拡大・縮小
- マスク
- 図形描画
- GSLOTからの矩形転送
- BG機能
- GSLOTからの矩形転送
- 図形描画
- ラスタスクロール
- スプライト機能
- SPU(BGM音源): 初代SUZUKI PLAN - Video Game Systemと同じ
- 全ストア型の波形メモリ音源
- 音色数: 4 (三角波、ノコギリ波、矩形波、ノイズ)
- チャネル数: 6
- 周波数: 22050Hz
- ビットレート: 16bit
- モノラル
- スロット仕様
- グラフィックス(GSLOT): 最大256x256ピクセル x 最大256枚
- 効果音(ESLOT): 22050Hz, 16bit, 1ch(モノラル) x 最大256個
- BGM(BSLOT): 最大65,536ノート × 最大256個
- データ(DSLOT): 任意データ × 最大256個