VVRAMシステム概要 (98年2月22日版)

 はじめに

今日でのウィンドウズのゲーム開発環境は大分改善もされており、名目ではアーケード級のものをつくれるようです。が、実際に身の回りのゲームソフトを見渡してみると意外と速度的に無理のある物が多いようで実際にゲームを買うなら(するなら或いは作るなら)家庭用のゲーム専用機だと思うのが現状となっています。しかし本当にそうなのでしょうか?そういったことで当方では一つの方法を仮想VRAMという形で打ち出してみました。

仮想VRAMは DirectDrawを使用した仮想的なVRAM上でスプライト画面、BG画面、グラフィック画面の3つの機構を実現したものです(別途 DirectX SDKは必要ありません)WIN32環境でゲームを作成するのに十分な速度を得ることが可能となります。また VVRAM.LIBは導入が簡単でかつフリーソフト(無償)でもあるので当ライブラリを使用した良質のフリーゲームソフトが登場することを期待しています。

 

 システム仕様

使用可能グラフィックモード ModeX 320×240/200 (8/16BitColor) 1×1〜512×384 ( 8/16BitColor)
可変サイズスプライト
定義数 無制限(搭載VRAMに依存)
最大表示数 無制限(CPUパワーに依存)
サイズ 1*1 〜 340*240/200(表示解像度依存)
カラー 1スプライト毎に任意の256色を選択(8Bit保存データを使用)
可変サイズグラフィック パターンプット機能やGDIの利用、球面スクロール機能があります
BG画面 元となるパターンをスプライトより指定してグラフィックにタイル上に貼り付ける機能です。ゲームには必須の機能でパターンアニメーションをしようするときには非常に役に立つことでしょう。 パターンサイズは 8*8又は16*16が指定可能です。球面スクロール機能もあります。
各画面のプライオリティ機能あり グラフィック < BG     < スプライト
グラフィック < スプライト  < BG
BG     < グラフィック < スプライト
BG     < スプライト  < グラフィック
スプライト  < グラフィック < BG
スプライト  < BG     < グラフィック

透明色はパレット番号 0 (RGB (0, 0, 0))固定です
自動クリッピング機能あり
ダイレクトキーボード、パッド入力をサポート

 

 動作環境

CPU Pentium133MHz以上 166Mhz以上推奨
メインメモリ 16M以上 64M推奨
グラフィックボード ModeX(320*240/200)をサポートしたグラフィックボード 2M以上 4M以上を推奨、但しModeXをサポートしていない場合はDirectX標準画面モードで動作されます。
確認済みグラフィックボード S3社製 VERGE/VX/DX、MGA Millenium、nDIVAIA RIVA128(推奨)
DirectX5ランタイム版が必要です(大抵のCDROM付雑誌に付属)

[重要]
ご使用のハードウェア環境ではどうしてもModeX(320*240*8)が使用できない場合があります。この場合はマザーボードとグラフィックボード、グラフィックドライバーの何れかの不具合又は相性によるものですので交換するか諦めるかしかありません。これはウィンドウズ95が(DirectX3以前)サポート外である為どうしようもありません(DirectX5により正式にサポートされましたが過去の機器構成では不具合がある場合もあります)

 

 対象ユーザー

C言語に精通し尚且つ C++を多少は知っていることを前提しております。但し単純な構成ですので誰でも簡単に利用ができると思います。
※サポートホームページにて入門編を特集する予定

 

 今後展開

現状の標準グラフィックハードウェアが今後ハードウェアで自由回転等をサポートした場合は当ライブラリも順次対応する予定です。他にバッファエフェクト命令(拡大縮小、半透明等、色加減算)を搭載も考えています。これは実用的な段階でという意味になります。

 

 開発環境

MOTHER FIC製 PA-2012 V1.1JB1.4
CPU AMD K6 233Mhz
GRAPHIC カノープスPRW128
MEMORY SDRAM 128M
HD UATA-5.2G
EIDE-2.1G
OS Windows95 OSR2.0 + USB Supplement to OSR2 = OSR2.1
COMPILER VisualC++v5.00 SP3

 

 著作権

実行ファイルプログラム及びドキュメントに関する著作権を含む一切の権利は私が有します

 

 使用責任

ご利用者が期待される効果を得るための本ソフトの選択、本ソフトの導入使用使用結果につきましては、著作権者(私)は責任を負い兼ねますご納得いただけない場合には本ソフトの使用を中止し、本ソフトに関する全てを破棄して下さい

 

 使用許諾

(1) VVRAM.LIBはフリーソフトウェアであり配布も自由です
(2) 配布時には全てのファイルをオリジナルのままで配布して下さい
(3) 逆コンパイルや営利目的 (シェアウェア含む)での利用を一切禁じます
(4) VVRAM.LIBを利用したソフトウェアは基本的にフリーソフトでなければいけません。特に
シェアウェアにしたい場合は必ずご相談下さい。

 

 サポート & 最新版の入手先

ご意見ご感想!!お待ちしています。コンパイルが通らない、動作しない!!などありましたら電子メール/FAX/郵政省メールにより受け付けます。回答は電子メール、FAX、郵政省メールの順で行います。但し私側に100%の回答の義務はありませんのでその旨ご理解ください。ですが殆どは回答していく次第であります。

また何か作成ならその旨ご連絡いただきたく思います。私のホームページでご紹介したく思います。

郵政省メール 〒553
大阪市淀川区十三東5-4-14 ヴァンヴェール淀川 602号 田井一成 宛て
FAX 06−838−0122
ニフティーサーブ ID BYF00114
ホームページアドレス
(最新版の入手先)
http://www.osaka.xaxon-net.or.jp/~tai
電子メール tai@osaka.xaxon-net.or.jp

 

 履歴

Version 変更点
ver0.50β5  ・ModeX(320*240*8)で無条件に画面端に黒帯が出るのを修正
BG関係の致命的バグを修正(殆ど使用が不能でした)
ver0.50β4 ・内部変数名称の変更
・インターフェース間で問題が発生する可能性があるのでメンバー変数をprivate/publicに分類
ver0.50β3 ・基本的にバグ消滅を前向きに行う
・BG画面でパフォーマンスチューニング
・BG画面で8*8サイズモードのバグ修正
・スプライトバッファを開放する関数をVvramクラスに用意
ver0.50β2 ・アクティブウィンドウが変更なった時に壊れたVRAMを修復する関数を追加 RestoreVram() これは ALT + TABでウィンドウを変更してその後にVVRAMのウィンドウに戻ると異常終了していた点を修正
ver0.50β1 ・DirectX5以降専用になるBG画面機構を搭載
・プライオリティ機能搭載
ver0.40 ・ver0.31のリリース版
ver0.31 ・VisualC++5.00版にしました
・ver0.30 グラフィック画面のVRAM機構を修正変更
  (1)内部的にDIBを経由する形式に変更
  (2)球面構造を追加 (地続きスクロールが目的)
  (3)グラフィック画面には初期化時にしか書き込みができない点を動的に変更ができるようにしました
・矩形指定のバグを修正 (16*16範囲は 0,0,15,15でなく 0,0,16,16)
・若干の高速化
ver0.20 ・8BitColorモードを追加(16Bitモードに比べて20%以上高速、パレット機能あり)
・サンプルプログラムを追加 (フェードイン/アウト、ラスタースクロール)
・ver0.20b BugFix:MapSprite()がおかしく全く動作しなかったのを修正
ver0.11 ・スプライトの表示属性(透過、上書き)を設定機能( BG利用に際してのスピードアップが目的で効果は最大で倍程度ですがVERGE互換ボードでは変化ありません)
・スプライトをメモリ上より作成する機能追加 LoadSpriteBuffer2()
・スプライトバッファ開放命令追加 DeleteSpriteBuffer()
・高速バッファクリア命令追加 ClearSpriteBuffer()
・320*200モードを追加