Bascinet
仮想ハードウェア
最終更新:
bascinet
-
view
仮想ハードウェア
| 解像度 | 面数 | 色 | |
| SFC | 256x224 | 5+1(sprite) | Sprite:16、Plane:16 |
| FC | 256x226 | 25色(4パレット×3色×2+背景1色) | |
| GBC | 160x144 | 32k色中56色 | |
| GBA | 240x160 | ||
| NDS | 256x192 | ||
| MSX2 | 256x212 | 2画面 | 固定256色 |
| MSX2 | 256x212 | 2画面 | 512色中16色 |
ファミコン内部では256x240、プレーンは256x256。
仮想ハードウェア案
- 画面: 320×240(20×15キャラ)
- 304×240(19×15キャラ)でもよい。
- スプライトの色0はヌキ色固定。
- スプライトの色1~7は簡易色変え用のグラデーションカラー。たとえば「赤いロッド」や「青いロッド」を作るときに使う、基本となる色。
- スプライトは256色。
- BGタイルも256色。
- オフスクリーンは32ビットカラー。
- ビデオスクリーンは、このさい15、16、24、32のどれでも対応したいところ。
エフェクト
- プレーンの半透明合成
- スプライト反転機能:水平
- スプライト反転機能:垂直
サウンドメモリ
PCM(Ogg/Wav)を確保するためのおおまかなメモリー配分。8MBとか32MBとか無制限と指定する。
sound.memory_mb = 8 sound.memory_mb = 0
これとは別個に、FM/PSGによる効果音を設定できる。
FM/PSGサウンドメモリー
FM音源用には128バイト、PSGには32バイトもあれば十分だと思う。
別途用意するG3SoundEffectEditorで、FM音色、PSG音色を定義し、それにエンベロープをかませて効果音を作成できる。効果音データは最大255バイトもあればなんとかなるかもしれない。長さ1バイト+効果音255バイトで、合計最大256バイト。
3バイトを4文字に変換して、テキストとして保存できるように。SEをテキストで提供できるように。
se.0 = jvNr9302_3oiofmeN42Bb9avorb4311053
デューティ比の指定
デューティ比とは、パルス周期Nにたいして、パルス幅Mとしたとき、N/M のこと。デューティ比1:1、もしくは0.5の矩形波は、_| ̄|こんなかたち。
これを、4bits:4bits で指定し、1~16:1~16を作り出せたら便利かもしれない。
パルス種類
矩形波(1)、三角波(2)、正弦波の三種類(3)、ノコギリ(4)
それと、ノイズ負荷ビット(1bit)
それと、ノイズ負荷ビット(1bit)
半三角波、絶対値サインはどうだろうか。
ノイズはノイズ冗長性(4なら、4単位に1回しかノイズ算出をしない)などどうだろう。ノイズの周期は独自に1024バイト程度でよいかもしれない。
PSG音色データ
- 1byte: パルス種類
- 1byte: デューティ比
波形メモリ音源
* 波形メモリ音源
o コナミ 005289(バブルシステムに搭載)、SCC、SCC+
o ナムコ C15(WSG)、C30(WSG)、N106(ファミコン用拡張音源)
o 任天堂 FDS拡張音源
* 波形メモリチャンネルを含むゲーム用音源
o 任天堂 ゲームボーイ、ゲームボーイアドバンス
o NEC PCエンジン
o バンダイ ワンダースワン
* 波形メモリのサンプル数(1ループあたり)
o 8~32 : WSGなど
o 32 : SCCなど
o 64 : FDS音源など
* 波形メモリの量子化ビット数
o 4 : N106など
o 6 : FDS音源など
o 8 : SCCなど
* 和音数
o 1 : FDS音源など
o 5 : SCCなど
o 最大8 : N106など
FM音源部・アルゴリズム
4オペレータでいくぜ。
- a0: 1→2→3→4
- a1: (1|2)→3→4
- a2: (*1)→4
- a3: (*2)→4
- a4: (*3)
- a5: 1→(2|3|4)
- a6: (1→2)+(3)+(4)
- a7: 1+2+3+4
オペレータ1にはフィードバック機能もつく。