English
◎ システムの使用するメモリのマッピングについて
システムはスプライト、スクロールのコントロール用に WORK-HI領域の
0x40000バイトを使用しています。また、テクスチャに光源の影響を与え
る場合にグーローシェーディングを用いるため、このデータとしてVDP1の
VRAMの内264バイトを使用しています。それらの内分けと、デフォルト
の設定を以下に示します。
MAX_POLYGONS: 1700 使用できるポリゴン数
MAX_VERTICES: 2500 使用できる頂点数
MAX_TRANSFER: 20 ブランキング中の転送リクエスト数
MAX_NEST: 20 マトリクスのネスト数
slPutPolygon() は指定されたモデルで使用するポリゴン数、及び頂点数を加えた時
最大数を越える場合そのモデルは処理しません。
また、slPutSprite() , slDispSprite() , slSetSprite() は実行されるたびにポリゴン数
をひとつずつ加算し、最大数を越える場合にそのデータの処理を中止します。
(ただし、指定されたZ位置が表示範囲外の場合には加算されません)
ワークRAM:
060C0000: (SortList)
スプライトコントロールデータのDMA転送用テーブルバッファ
(MAX_POLYGONS+6)*3*4バイト = 0x5400
+6しているのは、スプライトの描画以外に、
システムクリッピング
ユーザクリッピング
相対座標
ウインドウ
エンドコマンド
などのシステム回りのコマンドが必要になるからです。
詳細は、VDP1ユーザーズマニュアルのコマンドテーブルを御覧下さい。
060C4FF8: (Zbuffer)
ポリゴンソート用の1次バッファ(ウィンドウ0用)
128*4 = 0x200
060C51F8: (Zbuffer2)
ポリゴンソート用の1次バッファ2(ウィンドウ1用)
128*4 = 0x200
060C53F8: (Zbuf_nest)
ポリゴンソート用の2次バッファ
256*4 = 0x400
060C57F8: (Spritebuf)
スプライトコントロールデータバッファ
(MAX_POLYGONS+6)*36 = 0xFC00
+6しているのは、上のSortListと同様の理由からです。
060D53F8: (Spritebuf2)
スプライトコントロールデータバッファ2
(MAX_POLYGONS+6)*36 = 0xFC00
+6しているのは、上のSortListと同様の理由からです。
060E37C8: (Pbuffer)
ポリゴン演算用頂点位置バッファ
MAX_VERTICES*16 = 0x9C40
060ECDC8: (CLOfstBuf)
光源の影響による発色データテーブル
32*32 * 3= 0xC00
060ED9C8: (CommandBuf)
マスターからスレーブへのコマンド受渡しバッファ
060FB800: (TransList)
ブランキング中の転送リクエスト用のDMAコントロールテーブル
MAX_TRANSFER*3*4バイト = 0xF0
060FB8F0:
スタック領域(0x4310)
060FFC00:
システム変数領域(GBRレジスタは常にここを指している)
0x400バイト
システム変数は以下に示すもので、Cプログラムからも同じ名称で読み出すことができる
システム変数
000: (EventTop) (EVENT *) ; 先頭に登録されているイベント
004: (EventLast) (EVENT *) ; 末尾に登録されているイベント
008: (EventNow) (EVENT *) ; 実行中のイベント
00C: (EventCount) (Uint16) ; イベントの残数
00E: (WorkCount) (Uint16) ; ワークの残数
010: (MainMode) (Uint8) ; メインシーケンスモード
011: (SubMode) (Uint8) ; サブシーケンスモード
012: (SynchConst) (Sint8) ; ビデオ同期カウント
013: (SynchCount) (Sint8) ; ビデオ同期カウント
014: (UserFunction) (void (*)()) ; ブランキング中に実行するユーザー関数
018: (TransCount) (Uint16) ; ブランキング中の転送エントリー数
01A: (TransRequest) (Uint8) ; ブランキング中の転送のリクエスト
01B: (PauseFlag) (Uint8) ; スプライト、スクロールのポーズ用フラグ
01C: (mtptr) (MATRIX *) ; カレントマトリクスポインタ
020: (MatrixCount) (Uint8) ; マトリクスのネストカウント
021: (PrintColor) (Uint8) ; テキスト表示用カラーパレット
022: (IntCount) (Uint16) ; 割り込みカウント
024: (MsPbufPtr) (Uint32 *) ; 頂点座標演算バッファポインタ(Master)
028: (SlPbufPtr) (Uint32 *) ; 頂点座標演算バッファポインタ(Slave)
02C: (SpritePtr) (Uint16 *) ; スプライトデータ転送ポインタ
030: (MsSdataPtr) (Uint16 *) ; スプライトデータセットポインタ(Master)
034: (SlSdataPtr) (Uint16 *) ; スプライトデータセットポインタ(Master)
038: (ZbufPtr) (void **) ; Zバッファポインタ
03C: (FormTbl) (TEXTURE *) ; テクスチャデータテーブル
040: (SprbufBias) (Uint32) ; スプライトデータバッファ切り替え
044: (ComRdPtr) (Uint32 *) ; コマンドリードポインタ
048: (ComWrPtr) (Uint32 *) ; コマンドセットポインタ
04C: (MsLightVector) (VECTOR) ; 光源ベクトル(Master)
058: (SlLightVector) (VECTOR) ; 光源ベクトル(Master)
064: (ColorOffset) (Uint8 *) ; カラーオフセットテーブルポインタ
068: (MsScreenDist) (FIXED) ; スクリーン位置(Master)
06C: (SlScreenDist) (FIXED) ; スクリーン位置(Slave)
070: (MsZlimit) (Sint16) ; 表示リミットZ位置(Master)
072: (WindowNumber) (Uint8) ; ウィンドウ使用数
073: (WinUseFlag) (Uint8) ; ウィンドウ使用フラグ
074: (TotalPolygons) (Uint16) ; 演算ポリゴン数
076: (TotalVertices) (Uint16) ; 演算頂点数
078: (MsScreenLeft) (Sint16) ; スクリーン左位置
07A: (MsScreenTop) (Sint16) ; スクリーン上位置
07C: (MsScreenRight) (Sint16) ; スクリーン右位置
07E: (MsScreenBottom) (Sint16) ; スクリーン下位置
080: (MsScreenSizeX) (Uint16) ; スクリーン横サイズ(Master)
082: (MsScreenSizeY) (Uint16) ; スクリーン縦サイズ(Master)
084: (MsWindowSizeX) (Uint16) ; ウィンドウサイズ(Master)
086: (MsWindowSizeY) (Uint16) ; ウィンドウサイズ(Master)
088: (MXPolygons) (Uint16) ; 最大ポリゴン数
08A: (MXVertices) (Uint16) ; 最大頂点数
08C: (FrameSizeX) (Uint16) ; フレームバッファサイズ
08E: (FrameSizeY) (Uint16) ; フレームバッファサイズ
090: (MsWinXAdder) (Sint16) ; ウィンドウチェック用加算データ(Master)
092: (MsWinYAdder) (Sint16) ; ウィンドウチェック用加算データ(Master)
094: (SlWinXAdder) (Uint16) ; ウィンドウチェック用加算データ(Slave)
096: (SlWinYAdder) (Uint16) ; ウィンドウチェック用加算データ(Slave)
098: (MsClipXAdder) (Sint16) ; クリッピング用加算データ(横)(Master)
09A: (MsClipYAdder) (Sint16) ; クリッピング用加算データ(縦)(Master)
09C: (SlClipXAdder) (Sint16) ; クリッピング用加算データ(横)(Slave)
09E: (SlClipYAdder) (Sint16) ; クリッピング用加算データ(縦)(Slave)
0A0: (SlZlimit) (Sint16) ; 表示リミットZ位置(Slave)
0A2: (WinPtr) (Uint16) ; ウィンドウデータセットオフセット
0A4: (DispPolygons) (Uint16) ; 表示ポリゴン数
0A6: (DMAEndFlag) (Uint8) ; DMA転送終了フラグ(未使用)
0A8: (DMASetFlag) (Uint8) ; DMAテーブルセットフラグ
0AA: (PutCount) (Uint16) ; slPutPolygon(),sl...Sprite()呼び出し回数
0AC: (MsZdpsftcnt) (Uint8) ; 画面表示リミットシフトカウンタ(Master)
0AD: (SlZdpsftcnt) (Uint8) ; 画面表示リミットシフトカウンタ(Slave)
0B0 : (Resolution) (Uint8) ; 画面モード
0B1 : (NbPCMBf) (Uint8) ; PCMバッファの数(2000H単位)
0B2 : (PCMBufFlag) (Sint16) ; PCMバッファの空き状況フラグ
0B4 : (SoundRdCount) (Uint8) ; サウンドバッファ読み出しカウンタ
0B5 : (SoundWrCount) (Uint8) ; サウンドバッファエントリーカウンタ
0B6 : (FRT_Count) (Sint16) ; FRTカウンタ
0B7 : (SCUMC_ID) (Uint8) ; SCUメモリーコピーのチャンネルナンバー
0B8 : (DMASt_CPU0) (Uint8) ; CPU D.M.A.のステータス(CH0)
0BA : (DMASt_CPU1) (Uint8) ; CPU D.M.A.のステータス(CH1)
0BB : (DMASt_SCU0) (Uint8) ; SCU D.M.A.のステータス(CH0)
0BC : (DMASt_SCU1) (Uint8) ; SCU D.M.A.のステータス(CH1)
0BD : (DMASt_SCU2) (Uint8) ; SCU D.M.A.のステータス(CH2)
0BE : (--------) (Uint16) ; システム予約
0C0: (VDP2_TVMD) (Uint16) ; TV画面モード
0C2: (VDP2_EXTEN) (Uint16) ; 外部信号イネーブル
0C4: (VDP2_TVSTAT) (Uint16) ; 画面ステータス
0C6: (VDP2_VRSIZE) (Uint16) ; VRAMサイズ
0C8: (VDP2_HCNT) (Uint16) ; Hカウンター
0CA: (VDP2_VCNT) (Uint16) ; Vカウンター
0CE: (VDP2_RAMCTL) (Uint16) ; RAMコントロール
0D0: (VDP2_CYCA0L) (Uint16) ; VRAMサイクルパターン(バンクA0、T0ー3)
0D2: (VDP2_CYCA0U) (Uint16) ; VRAMサイクルパターン(バンクA0、T4ー7)
0D4: (VDP2_CYCA1L) (Uint16) ; VRAMサイクルパターン(バンクA1、T0ー3)
0D6: (VDP2_CYCA1U) (Uint16) ; VRAMサイクルパターン(バンクA1、T4ー7)
0D8: (VDP2_CYCB0L) (Uint16) ; VRAMサイクルパターン(バンクB0、T0ー3)
0DA: (VDP2_CYCB0U) (Uint16) ; VRAMサイクルパターン(バンクB0、T4ー7)
0DC: (VDP2_CYCB1L) (Uint16) ; VRAMサイクルパターン(バンクB1、T0ー3)
0DE: (VDP2_CYCB1U) (Uint16) ; VRAMサイクルパターン(バンクB1、T4ー7)
0E0: (VDP2_BGON) (Uint16) ; 画面表示イネーブル
0E2: (VDP2_MZCTL) (Uint16) ; モザイクコントロール
0E4: (VDP2_SFSEL) (Uint16) ; 特殊機能コードセレクト
0E6: (VDP2_SFCODE) (Uint16) ; 特殊機能コード
0E8: (VDP2_CHCTLA) (Uint16) ; キャラクタコントロール(NBG0、NBG1)
0EA: (VDP2_CHCTLB) (Uint16) ; キャラクタコントロール(NBG2、NBG3、RBG0)
0EC: (VDP2_BMPNA) (Uint16) ; ビットマップパレットナンバー(NBG0、1)
0EE: (VDP2_BMPNB) (Uint16) ; ビットマップパレットナンバー(RBG0)
0F0: (VDP2_PNCN0) (Uint16) ; パターンネームコントロール(NBG0)
0F2: (VDP2_PNCN1) (Uint16) ; パターンネームコントロール(NBG1)
0F4: (VDP2_PNCN2) (Uint16) ; パターンネームコントロール(NBG2)
0F6: (VDP2_PNCN3) (Uint16) ; パターンネームコントロール(NBG3)
0F8: (VDP2_PNCR) (Uint16) ; パターンネームコントロール(RBG0)
0FA: (VDP2_PLSZ) (Uint16) ; プレーンサイズ
0FC: (VDP2_MPOFN) (Uint16) ; マップオフセット(NBG0ー3)
0FE: (VDP2_MPOFR) (Uint16) ; マップオフセット(回転パラメータA、B)
100: (VDP2_MPABN0) (Uint16) ; マップ(NBG0プレーンA、B)
102: (VDP2_MPCDN0) (Uint16) ; マップ(NBG0プレーンC、D)
104: (VDP2_MPABN1) (Uint16) ; マップ(NBG1プレーンA、B)
106: (VDP2_MPCDN1) (Uint16) ; マップ(NBG1プレーンC、D)
108: (VDP2_MPABN2) (Uint16) ; マップ(NBG2プレーンA、B)
10A: (VDP2_MPCDN2) (Uint16) ; マップ(NBG2プレーンC、D)
10C: (VDP2_MPABN3) (Uint16) ; マップ(NBG3プレーンA、B)
10E: (VDP2_MPCDN3) (Uint16) ; マップ(NBG3プレーンC、D)
110: (VDP2_MPABRA) (Uint16) ; マップ(回転パラメータAプレーンA、B)
112: (VDP2_MPCDRA) (Uint16) ; マップ(回転パラメータAプレーンC、D)
114: (VDP2_MPEFRA) (Uint16) ; マップ(回転パラメータAプレーンE、F)
116: (VDP2_MPGHRA) (Uint16) ; マップ(回転パラメータAプレーンG、H)
118: (VDP2_MPIJRA) (Uint16) ; マップ(回転パラメータAプレーンI、J)
11A: (VDP2_MPKLRA) (Uint16) ; マップ(回転パラメータAプレーンK、L)
11C: (VDP2_MPMNRA) (Uint16) ; マップ(回転パラメータAプレーンM、N)
11E: (VDP2_MPOPRA) (Uint16) ; マップ(回転パラメータAプレーンO、P)
120: (VDP2_MPABRB) (Uint16) ; マップ(回転パラメータBプレーンA、B)
122: (VDP2_MPCDRB) (Uint16) ; マップ(回転パラメータBプレーンC、D)
124: (VDP2_MPEFRB) (Uint16) ; マップ(回転パラメータBプレーンE、F)
126: (VDP2_MPGHRB) (Uint16) ; マップ(回転パラメータBプレーンG、H)
128: (VDP2_MPIJRB) (Uint16) ; マップ(回転パラメータBプレーンI、J)
12A: (VDP2_MPKLRB) (Uint16) ; マップ(回転パラメータBプレーンK、L)
12C: (VDP2_MPMNRB) (Uint16) ; マップ(回転パラメータBプレーンM、N)
12E: (VDP2_MPOPRB) (Uint16) ; マップ(回転パラメータBプレーンO、P)
130: (VDP2_SCXN0) (FIXED) ; 画面スクロール値(NBG0、水平方向固定小数)
130: (VDP2_SCXIN0) (Sint16) ; 画面スクロール値(NBG0、水平方向整数部)
132: (VDP2_SCXDN0) (Uint16) ; 画面スクロール値(NBG0、水平方向小数部)
134: (VDP2_SCYN0) (FIXED) ; 画面スクロール値(NBG0、垂直方向固定小数)
134: (VDP2_SCYIN0) (Uint16) ; 画面スクロール値(NBG0、垂直方向整数部)
136: (VDP2_SCYDN0) (Uint16) ; 画面スクロール値(NBG0、垂直方向小数部)
138: (VDP2_ZMXN0) (FIXED) ; 座標増分(NBG0、水平方向固定小数)
138: (VDP2_ZMXIN0) (Uint16) ; 座標増分(NBG0、水平方向整数部)
13A: (VDP2_ZMXDN0) (Uint16) ; 座標増分(NBG0、水平方向小数部)
13C: (VDP2_ZMYN0) (FIXED) ; 座標増分(NBG0、垂直方向固定小数)
13C: (VDP2_ZMYIN0) (Uint16) ; 座標増分(NBG0、垂直方向整数部)
13E: (VDP2_ZMYDN0) (Uint16) ; 座標増分(NBG0、垂直方向小数部)
140: (VDP2_SCXN1) (FIXED) ; 画面スクロール値(NBG1、水平方向固定小数)
140: (VDP2_SCXIN1) (Uint16) ; 画面スクロール値(NBG1、水平方向整数部)
142: (VDP2_SCXDN1) (Uint16) ; 画面スクロール値(NBG1、水平方向小数部)
144: (VDP2_SCYN1) (FIXED) ; 画面スクロール値(NBG1、垂直方向固定小数)
144: (VDP2_SCYIN1) (Uint16) ; 画面スクロール値(NBG1、垂直方向整数部)
146: (VDP2_SCYDN1) (Uint16) ; 画面スクロール値(NBG1、垂直方向小数部)
148: (VDP2_ZMXN1) (FIXED) ; 座標増分(NBG1、水平方向固定小数)
148: (VDP2_ZMXIN1) (Uint16) ; 座標増分(NBG1、水平方向整数部)
14A: (VDP2_ZMXDN1) (Uint16) ; 座標増分(NBG1、水平方向小数部)
14C: (VDP2_ZMYN1) (FIXED) ; 座標増分(NBG1、垂直方向固定小数)
14C: (VDP2_ZMYIN1) (Uint16) ; 座標増分(NBG1、垂直方向整数部)
14E: (VDP2_ZMYDN1) (Uint16) ; 座標増分(NBG1、垂直方向小数部)
150: (VDP2_SCXN2) (Uint16) ; 画面スクロール値(NBG2、水平方向)
152: (VDP2_SCYN2) (Uint16) ; 画面スクロール値(NBG2、垂直方向)
154: (VDP2_SCXN3) (Uint16) ; 画面スクロール値(NBG3、水平方向)
156: (VDP2_SCYN3) (Uint16) ; 画面スクロール値(NBG3、垂直方向)
158: (VDP2_ZMCTL) (Uint16) ; 縮小イネーブル
15A: (VDP2_SCRCTL) (Uint16) ; ライン&縦セルスクロールコントロール
15C: (VDP2_VCSTA) (Uint16 *) ; 縦セルスクロールテーブルアドレス
160: (VDP2_LSTA0) (Sint16 *) ; NBG0用ラインスクロールテーブルアドレス
164: (VDP2_LSTA1) (Sint16 *) ; NBG1用ラインスクロールテーブルアドレス
168: (VDP2_LCTA) (Uint16 *) ; ラインカラー画面テーブルアドレス
16C: (VDP2_BKTA) (Uint16 *) ; バック画面テーブルアドレス
170: (VDP2_RPMD) (Uint16) ; 回転パラメータモード
172: (VDP2_RPRCTL) (Uint16) ; 回転パラメータリードコントロール
174: (VDP2_KTCTL) (Uint16) ; 係数テーブルコントロール
176: (VDP2_KTAOF) (Uint16) ; 係数テーブルアドレスオフセット
178: (VDP2_OVPNRA) (Uint16) ; 画面オーバーパターンネーム
17A: (VDP2_OVPNRB) (Uint16) ; 画面オーバーパターンネーム
17C: (VDP2_RPTA) (Sint32 *) ; 回転パラメータテーブルアドレス
180: (VDP2_WPSX0) (Uint16) ; ウィンドウポジション(H start)
182: (VDP2_WPSY0) (Uint16) ; ウィンドウポジション(V start)
184: (VDP2_WPEX0) (Uint16) ; ウィンドウポジション(H stop)
186: (VDP2_WPEY0) (Uint16) ; ウィンドウポジション(V stop)
188: (VDP2_WPSX1) (Uint16) ; ウィンドウポジション(H start)
18A: (VDP2_WPSY1) (Uint16) ; ウィンドウポジション(V start)
18C: (VDP2_WPEX1) (Uint16) ; ウィンドウポジション(H stop)
18E: (VDP2_WPEY1) (Uint16) ; ウィンドウポジション(V stop)
190: (VDP2_WCTLA) (Uint16) ; ウィンドウコントロール
192: (VDP2_WCTLB) (Uint16) ; ウィンドウコントロール
194: (VDP2_WCTLC) (Uint16) ; ウィンドウコントロール
196: (VDP2_WCTLD) (Uint16) ; ウィンドウコントロール
198: (VDP2_LWTA0) (Uint16 *) ; ラインウィンドウテーブルアドレス
19C: (VDP2_LWTA1) (Uint16 *) ; ラインウィンドウテーブルアドレス
1A0: (VDP2_SPCTL) (Uint16) ; スプライトコントロール
1A2: (VDP2_SDCTL) (Uint16) ; シャドウコントロール
1A4: (VDP2_CRAOFA) (Uint16) ; カラーRAMアドレスオフセット(NBG0ー3)
1A6: (VDP2_CRAOFB) (Uint16) ; カラーRAMアドレスオフセット(RBG0、スプライト)
1A8: (VDP2_LNCLEN) (Uint16) ; ラインカラー画面イネーブル
1AA: (VDP2_SFPRMD) (Uint16) ; 特殊プライオリティモード
1AC: (VDP2_CCCTL) (Uint16) ; カラー演算コントロール
1AE: (VDP2_SFCCMD) (Uint16) ; 特殊カラー演算モード
1B0: (VDP2_PRISA) (Uint16) ; プライオリティナンバー
1B2: (VDP2_PRISB) (Uint16) ; プライオリティナンバー
1B4: (VDP2_PRISC) (Uint16) ; プライオリティナンバー
1B6: (VDP2_PRISD) (Uint16) ; プライオリティナンバー
1B8: (VDP2_PRINA) (Uint16) ; プライオリティナンバー
1BA: (VDP2_PRINB) (Uint16) ; プライオリティナンバー
1BC: (VDP2_PRIR) (Uint16) ; プライオリティナンバー
1BE: (--------) (Uint16) ; システム予約
1C0: (VDP2_CCRSA) (Uint16) ; カラー演算割合(スプライト0、1)
1C2: (VDP2_CCRSB) (Uint16) ; カラー演算割合(スプライト2、3)
1C4: (VDP2_CCRSC) (Uint16) ; カラー演算割合(スプライト4、5)
1C6: (VDP2_CCRSD) (Uint16) ; カラー演算割合(スプライト6、7)
1C8: (VDP2_CCRNA) (Uint16) ; カラー演算割合(NBG0、1)
1CA: (VDP2_CCRNB) (Uint16) ; カラー演算割合(NBG2、3)
1CC: (VDP2_CCRR) (Uint16) ; カラー演算割合(RGB0)
1CE: (VDP2_CCRLB) (Uint16) ; カラー演算割合(ラインカラー画面、バック画面)
1D0: (VDP2_CLOFEN) (Uint16) ; カラーオフセットイネーブル
1D2: (VDP2_CLOFSL) (Uint16) ; カラーオフセットセレクト
1D4: (VDP2_COAR) (Uint16) ; カラーオフセットA(Red)
1D6: (VDP2_COAG) (Uint16) ; カラーオフセットA(Green)
1D8: (VDP2_COAB) (Uint16) ; カラーオフセットA(Blue)
1DA: (VDP2_COBR) (Uint16) ; カラーオフセットB(Red)
1DC: (VDP2_COBG) (Uint16) ; カラーオフセットB(Green)
1DE: (VDP2_COBB) (Uint16) ; カラーオフセットB(Blue)
1E0: (ScrRotPtr) (ROTSCROLL *) ; 操作する回転パラメータのアドレス
1E4: (nbg0_char_adr) (void *) ; NBG0用CGアドレス
1E8: (nbg1_char_adr) (void *) ; NBG1用CGアドレス
1EC: (nbg2_char_adr) (void *) ; NBG2用CGアドレス
1F0: (nbg3_char_adr) (void *) ; NBG3用CGアドレス
1F4: (ra_char_adr) (void *) ; RBG0(パラメータA)用CGアドレス
1F8: (rb_char_adr) (void *) ; RBG0(パラメータB)用CGアドレス
1FC: (nbg0_page_adr) (void *) ; NBG0用パターンネームアドレス
200: (nbg1_page_adr) (void *) ; NBG1用パターンネームアドレス
204: (nbg2_page_adr) (void *) ; NBG2用パターンネームアドレス
208: (nbg3_page_adr) (void *) ; NBG3用パターンネームアドレス
20C: (ra_page_adr) (void *) ; RBG0(パラメータA)用パターンネームアドレス
210: (rb_page_adr) (void *) ; RBG0(パラメータB)用パターンネームアドレス
214: (rpara_vram_adr)(void *) ; 回転パラメータセットアドレス
218: (k_table_adr) (void *) ; 係数テーブルセットアドレス
21C: (RotScrParA) (ROTSCROLL) ; 回転パラメータA
284: (RotScrParB) (ROTSCROLL) ; 回転パラメータB
2EC: (Nbg2_PosX) (FIXED) ; NBG2 表示位置 (X)
2F0: (Nbg2_PosY) (FIXED) ; NBG2 表示位置 (Y)
2F4: (Nbg3_PosX) (FIXED) ; NBG3 表示位置 (X)
2F8: (Nbg3_PosY) (FIXED) ; NBG3 表示位置 (Y)
2FC: (Window_data) (Uint16[22]) ; ウィンドウコントロールデータバッファ(2つ分)
328: (Center_data) (Uint16[10]) ; ウィンドウ中心コントロールデータバッファ(2つ分)
33C: (RandWork) (Uint32) ; 乱数生成用ワーク
340: (CDReadExec) (void*()) ; CD読み込みサーバー関数
344: (DMA_TRANS) (Uint32[10]) ; CPU D.M.A. パラメータ
36C: (SOUND) (void*[3]) ; サウンドバッファポインタ
378: (PERIPHERAL) (Uint32[12]) ; ペリフェラルコントロールデータ
○ VDP1_VRAM
0x25C00000から始まるVDP1のVRAMで先頭と末尾の領域はシステムによって
使用されているため、ユーザーは使用できない。
25C00000: スプライトコントロールコマンド
(MAX_POLYGON + 6) * 32 = 0xE1C0
25C7FF00: グーローシェーディングテーブル
2*4*33 = 0x108(264)
○ VDP2_VRAM
0x25E00000から始まるVDP2のVRAMはシステム初期化の際、以下の様に
区分されている。
25E00000: VDP2_VRAM_A0
回転スクロール用CGデータ
25E20000: VDP2_VRAM_A1
回転スクロール用係数データ及び、回転パラメータ
25E40000: VDP2_VRAM_B0
回転スクロール用パターンネームデータ
25E60000: VDP2_VRAM_B1
ノーマルスクロール用データ
この領域はCGとパターンネームが共有している。
25E60000〜25E67FFF (NBG0及びNBG1用CGデータ)
25E68000〜25E75FFF (NBG1用CGデータ)
25E76000〜25E77FFF (NBG0用パターンネームデータ1ページ)
25E78000〜25E7FFFF (NBG1用パターンネームデータ4ページ)
CGはどのスクロールも256色モードでパターンネームは1ワード/セルになっている。
NBG0は各セルごとに反転のフラグを持つ10ビットモードで、他の面は反転を面ごとに
使用する12ビットモードとなっている。
カラーRAMは16ビット2048色モードで、オフセットは使用していない。
バック面は単色で、25E3FFFEにカラーデータ(0000)を入れている。
06000000 : +---------------------------+
| Boot ROM BIOS functions |
06000800 : +---------------------------+
| Slave CPU Stack Area |
06001000 : +---------------------------+
| Master CPU default Stack |
06002000 : +---------------------------+
| ??? |
06004000 : +---------------------------+
| |
| User Program & Data |
| |
060C0000 : +---------------------------+
| |
| SortList (5400) |
| |
060C4FF8 : +---------------------------+
| Zbuffer (200) |
060C51F8 : +---------------------------+
| Zbuffer2 (200) |
060C53F8 : +---------------------------+
| Zbuf_nest (400) |
060C57F8 : +---------------------------+
| |
| Spritebuf (FC00) |
| |
060D53F8 : +---------------------------+
| |
| Spritebuf2(FC00) |
| |
060E37C8 : +---------------------------+
| |
| Pbuffer (9C40) |
| |
060ED408 : +---------------------------+
| CLOfstBuf (C00) |
060EE008 : +---------------------------+
| |
| CommandBuf(D7F8) |
| |
060FB800 : +---------------------------+
|TransList(F0) |
060FB8F0 : +---------------------------+
| |
| Stack Area(4310) |
| |
060FFC00 : +---------------------------+
| SystemWork(400) |
06100000 : +---------------------------+
25C00000 : +---------------------------+
| |
| SpriteCommand(E1C0) |
| |
25C0E1C0 : +---------------------------+
| |
| Free (for User) |
| |
25C7FEF8 : +---------------------------+
| Gouraud table(108) |
25C80000 : +---------------------------+
25E00000 : +---------------------------+
| |
| RBG0 CG (2048chars) |
| |
25E20000 : +---------------------------+
| |
| RBG0 K table |
| |
25E40000 : +---------------------------+
| |
| RBG0 Map (16pages) |
| |
25E60000 : +---------------------------+
| NBG0 , NBG1 CG (512 chars)|
25E68000 : +- - - - - - - - - - - - - -+
| NBG1 CG (+896chars) |
25E76000 : +---------------------------+
| NBG0 Map (1page) |
25E78000 : +---------------------------+
| NBG1 Map (4pages) |
25E80000 : +---------------------------+