Jo Engine  9
Jo Sega Saturn Engine
sgl_prototypes.h
Go to the documentation of this file.
1 /*
2 ** Jo Sega Saturn Engine
3 ** Copyright (c) 2012-2017, Johannes Fetz (johannesfetz@gmail.com)
4 ** All rights reserved.
5 **
6 ** Redistribution and use in source and binary forms, with or without
7 ** modification, are permitted provided that the following conditions are met:
8 ** * Redistributions of source code must retain the above copyright
9 ** notice, this list of conditions and the following disclaimer.
10 ** * Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
13 ** * Neither the name of the Johannes Fetz nor the
14 ** names of its contributors may be used to endorse or promote products
15 ** derived from this software without specific prior written permission.
16 **
17 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 ** DISCLAIMED. IN NO EVENT SHALL Johannes Fetz BE LIABLE FOR ANY
21 ** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
34 #ifndef __JO_SGL_PROTOTYPES_H__
35 # define __JO_SGL_PROTOTYPES_H__
36 
37 #if !JO_COMPILE_USING_SGL
38 
39 //HACK
40 #define SEGA_XPT_H
41 #define SEGA_GFS_H
42 #define SEGA_CDC_H
43 #define SEGA_BUP_H
44 
45 /*
46 #include <sgl.h>
47 */
48 #define VDP2_VRAM_A0 0x25e00000
49 #define VDP2_VRAM_A1 0x25e20000
50 #define VDP2_VRAM_B0 0x25e40000
51 #define VDP2_VRAM_B1 0x25e60000
52 
53 #define VDP2_COLRAM 0x25f00000
54 #define CHAR_SIZE_1x1 0
55 
56 #define COL_TYPE_256 0x10
57 
58 #define KTBL0_RAM VDP2_VRAM_A1 /* 回転スクロール用係数テーブル */
59 #define BACK_CRAM (KTBL0_RAM + 0x1fffe) /* Back color */
60 
61 #define CL_Half 2 /* 半輝度モード */
62 #define CL_Trans 3 /* 半透明モード */
63 #define CL_Gouraud 4 /* グーローシェーディングモード */
64 
65 #define PER_ID_NotConnect 0xff /* 未接続 */
66 #define PER_ID_StnPad 0x02 /* サターン標準パッド */
67 #define PER_ID_StnMouse 0x23 /* サターンマウス */
68 #define PER_ID_ShuttleMouse 0xe3 /* シャトルマウス */
69 
70 #define toFIXED(a) ((FIXED)(65536.0 * (a)))
71 #define POStoFIXED(x,y,z) {toFIXED(x),toFIXED(y),toFIXED(z)}
72 #define DEGtoANG(d) ((ANGLE)((65536.0 * (d)) / 360.0))
73 #define NORMAL(x,y,z) {POStoFIXED(x,y,z)
74 #define VERTICES(v0,v1,v2,v3) {v0 , v1 , v2 , v3}}
75 #define C_RGB(r,g,b) (((b)&0x1f)<<10|((g)&0x1f)<<5|((r)&0x1f)|0x8000)
76 
77 #define ECdis (1 << 7) /* エンドコードをパレットのひとつとして使用 */
78 
79 #define SPdis (1 << 6) /* スペースコードをパレットのひとつとして使用 */
80 
81 #define sprPolygon (FUNC_Polygon | ((ECdis | SPdis) << 24))
82 
83 #define FUNC_Texture 2
84 #define FUNC_Polygon 4
85 #define FUNC_PolyLine 5
86 
87 #define MESHon (1 << 8) /* メッシュで表示 */
88 #define CL32KRGB (5 << 3) /* RGB32K色モード */
89 
90 #define UseTexture (1 << 2) /* テクスチャを貼るポリゴン */
91 #define UseLight (1 << 3) /* 光源の影響を受けるポリゴン */
92 #define UsePalette (1 << 5) /* ポリゴンのカラー */
93 
94 #define No_Texture 0 /* テクスチャを使用しない時 */
95 #define No_Option 0 /* オプションを使用しない時 */
96 #define No_Gouraud 0 /* グーローシェーディングを使用しない時 */
97 #define No_Palet 0 /* カラーパレットの指定がいらない時 */
98 
99 #define sprNoflip ((0) | FUNC_Texture | (UseTexture << 16))
100 
101 typedef unsigned char Uint8 ; /* 符号なし1バイト整数 */
102 typedef signed char Sint8 ; /* 符号つき1バイト整数 */
103 typedef unsigned short Uint16 ; /* 符号なし2バイト整数 */
104 typedef signed short Sint16 ; /* 符号つき2バイト整数 */
105 typedef unsigned long Uint32 ; /* 符号なし4バイト整数 */
106 typedef signed long Sint32 ; /* 符号つき4バイト整数 */
107 typedef int Bool ; /* 論理型(論理定数を値にとる) */
108 typedef float Float32 ; /* 4バイト実数 */
109 
110 enum ps {X, Y, Z, XYZ, XYZS, XYZSS, XY = Z, S = XYZ, Sh = S, Sv = XYZS} ;
111 enum base
112 {
113  SORT_BFR, /* 直前に表示したポリゴンの位置を使う */
114  SORT_MIN, /* 4点の内、一番手前の点を使う */
115  SORT_MAX, /* 4点の内一番遠い点を使う */
116  SORT_CEN /* 4点の平均位置を使う */
117 } ;
118 
119 enum pln
120 {
121  Single_Plane, /* 片面ポリゴン */
122  Dual_Plane /* 両面ポリゴン(表裏判定の結果を見ない) */
123 } ;
124 
125 typedef Sint16 ANGLE ;
126 typedef Sint32 FIXED ;
127 typedef FIXED MATRIX[4][3] ; /* マトリクスデータ */
128 typedef FIXED VECTOR[XYZ] ; /* ベクトルデータ */
129 typedef FIXED POINT[XYZ] ; /* 頂点の位置データ */
130 
131 #define _Stereo 0x80
132 #define _Mono 0x00
133 
134 #define _PCM16Bit 0x00
135 #define _PCM8Bit 0x10
136 
137 typedef struct
138 {
139  Uint8 mode ; /* Mode */
140  Uint8 channel ; /* PCM Channel Number */
141  Uint8 level ; /* 0 ~ 127 */
142  Sint8 pan ; /* -128 ~ +127 */
144  Uint8 eflevelR ; /* Effect level for Right(mono) 0 ~ 7 */
145  Uint8 efselectR ; /* Effect select for Right(mono) 0 ~ 15 */
146  Uint8 eflevelL ; /* Effect level for Left 0 ~ 7 */
147  Uint8 efselectL ; /* Effect select for Left 0 ~ 15 */
148 } PCM ;
149 
150 enum SmpcCommand /* SMPCコマンド番号 */
151 {
152  SMPC_MSHON, /* (00) マスタ SH2 ON */
153  SMPC_SSHON, /* (01) スレーブ SH2 ON */
154  SMPC_SSHOFF, /* (02) スレーブ SH2 OFF */
155  SMPC_SNDON, /* (03) サウンド ON */
156  SMPC_SNDOFF, /* (04) サウンド OFF */
157  SMPC_CDON, /* (05) CD ON */
158  SMPC_CDOFF, /* (06) CD OFF */
159  SMPC_SYSRES, /* (07) システム全体リセット */
160  SMPC_CKC352, /* (08) クロックチェンジ352モード */
161  SMPC_CKC320, /* (09) クロックチェンジ320モード */
162  SMPC_NMIREQ, /* (0a) NMIリクエスト */
163  SMPC_RESENA, /* (0b) リセットイネーブル */
164  SMPC_RESDIS, /* (0c) リセットディスエーブル */
165  SMPC_GETSTS, /* (0d) ステータス取得 */
166  SMPC_GETPER, /* (0e) ペリフェラル取得 */
167  SMPC_SETMEM, /* (0f) SMPCメモリ設定 */
168  SMPC_SETTIM, /* (10) 時刻設定 */
169  SMPC_CMDMAX /* (11) コマンド番号最大値 */
170 };
171 
172 enum SmpcWaitMode /* SMPCコマンド実行モード */
173 {
174  SMPC_NO_WAIT, /* (00) コマンド実行終了待ち無し */
175  SMPC_WAIT /* (01) コマンド実行終了待ち有り */
176 };
177 
178 
179 enum BooleanSwitch /* 論理定数2(スイッチ) */
180 {
181  OFF = 0,
182  ON = 1
183 };
184 
185 typedef struct
186 {
187  Uint16 texno ; /* テクスチャ番号 */
188  Uint16 atrb ; /* アトリビュートデータ(表示モード) */
189  Uint16 colno ; /* カラーナンバー */
190  Uint16 gstb ; /* グーローシェーディングテーブル */
191  Uint16 dir ; /* テクスチャの反転とファンクションナンバー */
192 } SPR_ATTR ;
193 
194 typedef struct
195 {
196  Uint8 flag ; /* 片面か両面かのフラグ */
197  Uint8 sort ; /* ソートの基準位置とオプション設定 */
198  Uint16 texno ; /* テクスチャ番号 */
199  Uint16 atrb ; /* アトリビュートデータ(表示モード) */
200  Uint16 colno ; /* カラーナンバー */
201  Uint16 gstb ; /* グーローシェーディングテーブル */
202  Uint16 dir ; /* テクスチャの反転とファンクションナンバー */
203 } ATTR ;
204 
205 typedef struct
206 {
207  VECTOR norm ; /* 法線ベクトル */
208  Uint16 Vertices[4] ; /* ポリゴンを構成する頂点番号 */
209 } POLYGON ;
210 
211 typedef struct
212 {
213  POINT *pntbl ; /* 頂点の位置データテーブル */
214  Uint32 nbPoint ; /* 頂点の数 */
215  POLYGON *pltbl ; /* ポリゴン定義テーブル */
216  Uint32 nbPolygon ; /* ポリゴンの数 */
217  ATTR *attbl ; /* ポリゴンのアトリビュートテーブル */
218 } PDATA ;
219 
220 typedef struct
221 {
222  Uint16 Hsize ; /* スプライトのHサイズ */
223  Uint16 Vsize ; /* スプライトのVサイズ */
224  Uint16 CGadr ; /* スプライトCGアドレス / 8 */
225  Uint16 HVsize ; /* Hサイズ/8、Vサイズ(ハード用) */
226 } TEXTURE ;
227 
228 typedef struct
229 {
230  Uint16 texno ; /* テクスチャ番号 */
231  Uint16 cmode ; /* カラーモード */
232  void *pcsrc ; /* 元データの所在 */
233 } PICTURE ;
234 
235 typedef struct /* デジタルデバイス */
236 {
237  Uint8 id; /* ペリフェラルID */
238  Uint8 ext; /* 拡張データサイズ */
239  Uint16 data; /* ボタン現在データ */
240  Uint16 push; /* ボタン押下データ */
241  Uint16 pull; /* ボタン引上データ */
242  Uint32 dummy2[4]; /* ダミー2 */
243 } PerDigital;
244 
245 enum BooleanLogic /* 論理定数1(偽、真) */
246 {
247  FALSE = 0,
248  TRUE = 1
249 };
250 
251 enum tvsz
252 {
257 
262 } ;
263 
264 #define PNB_2WORD 0
265 #define PNB_1WORD 0x8000
266 #define CN_10BIT 0
267 #define CN_12BIT 0x4000
268 #define COL_TYPE_32768 0x30
269 
270 #define PL_SIZE_1x1 0
271 #define PL_SIZE_2x1 1
272 #define PL_SIZE_2x2 3
273 
274 #define NBG0ON (1<<0)
275 #define NBG1ON (1<<1)
276 
277 #define BM_512x256 0x02
278 #define BM_512x512 0x06
279 #define BM_1024x256 0x0a
280 #define BM_1024x512 0x0e
281 
282 extern void slCurColor(Uint16) ;
285 extern void slPlaneNbg1(Uint16) ;
286 extern void slUnitMatrix(MATRIX) ;
287 extern Bool slDispSprite(FIXED *, SPR_ATTR *attr, ANGLE) ;
288 extern void slScrPosNbg1(FIXED x,FIXED y) ;
289 extern void slZoomNbg1(FIXED x,FIXED y) ;
290 extern void slDMACopy(void *, void *, Uint32) ;
291 extern void slBack1ColSet(void *, Uint16) ;
292 extern void slCharNbg0(Uint16 type,Uint16 size) ;
293 extern void slCharNbg1(Uint16 type,Uint16 size) ;
294 extern void slTVOn(void) ;
295 extern void slPageNbg1(void *,void *,Uint16) ;
296 extern void slMapNbg1(void *,void *,void *,void *) ;
297 extern void slPrint(char *, void *) ;
298 extern void slBitMapNbg1(Uint16, Uint16, void *) ;
299 extern void slTVOff(void) ;
300 extern Bool slScrAutoDisp(Uint32) ;
301 extern void slInitSystem(Uint16, TEXTURE *, Sint8) ;
302 extern void slSynch(void) ;
303 extern void slPriority(Sint16, Uint16) ;
304 extern void *slLocate(Uint16, Uint16) ;
305 #define scnNBG0 1
306 #define scnNBG1 0
307 
308 extern void slLookAt(FIXED *camera, FIXED *target, ANGLE) ;
309 extern void slLight(VECTOR) ;
310 extern Bool slPushMatrix(void) ;
311 extern Bool slPopMatrix(void) ;
312 extern void slRotX(ANGLE) ;
313 extern void slRotY(ANGLE) ;
314 extern void slRotZ(ANGLE) ;
315 extern void slScale(FIXED, FIXED, FIXED) ;
316 extern Bool slPutPolygon(PDATA *) ;
318 extern void slPerspective(ANGLE) ;
319 extern void slTranslate(FIXED, FIXED, FIXED) ;
320 extern void slZdspLevel(Uint16) ;
321 
323 
324 #define CDC_POS_PTYPE(pos) ((pos)->ptype)
325 #define CDC_POS_FAD(pos) ((pos)->pbody.fad)
326 #define CDC_POS_TNO(pos) ((pos)->pbody.trkidx.tno)
327 #define CDC_POS_IDX(pos) ((pos)->pbody.trkidx.idx)
328 
329 #define CDC_PLY_START(ply) ((ply)->start)
330 #define CDC_PLY_END(ply) ((ply)->end)
331 #define CDC_PLY_PMODE(ply) ((ply)->pmode)
332 
333 #define CDC_PLY_STYPE(ply) CDC_POS_PTYPE(&CDC_PLY_START(ply))
334 #define CDC_PLY_SFAD(ply) CDC_POS_FAD(&CDC_PLY_START(ply))
335 #define CDC_PLY_STNO(ply) CDC_POS_TNO(&CDC_PLY_START(ply))
336 #define CDC_PLY_SIDX(ply) CDC_POS_IDX(&CDC_PLY_START(ply))
337 
338 #define CDC_PLY_ETYPE(ply) CDC_POS_PTYPE(&CDC_PLY_END(ply))
339 #define CDC_PLY_EFAS(ply) CDC_POS_FAD(&CDC_PLY_END(ply))
340 #define CDC_PLY_ETNO(ply) CDC_POS_TNO(&CDC_PLY_END(ply))
341 #define CDC_PLY_EIDX(ply) CDC_POS_IDX(&CDC_PLY_END(ply))
342 
343 #define CDC_SM_EOR 0x01 /* レコード最後のセクタ */
344 #define CDC_SM_VIDEO 0x02 /* ビデオセクタ */
345 #define CDC_SM_AUDIO 0x04 /* オーディオセクタ */
346 #define CDC_SM_DATA 0x08 /* データセクタ */
347 #define CDC_SM_TRIG 0x10 /* トリガON */
348 #define CDC_SM_FORM 0x20 /* フォームビット(1:Form2, 0:Form1)*/
349 #define CDC_SM_RT 0x40 /* リアルタイムセクタ */
350 #define CDC_SM_EOF 0x80 /* ファイル最後のセクタ */
351 
352 #define CDC_PM_DFL 0x00 /* 再生モードの省略値 */
353 
354 /* エラーコード */
355 #define GFS_ERR_OK 0 /* 正常終了 */
356 #define GFS_ERR_CDRD (-1) /* CDリードエラー */
357 #define GFS_ERR_CDNODISC (-2) /* CDがセットされていない */
358 #define GFS_ERR_CDROM (-3) /* ディスクがCD-ROMでない */
359 #define GFS_ERR_DIRTBL (-4) /* ディレクトリ管理テーブルが不正 */
360 #define GFS_ERR_OPENMAX (-5) /* 最大オープン数の値が不正 */
361 #define GFS_ERR_DIR (-6) /* 指定ファイルはディレクトリでない */
362 #define GFS_ERR_CDBFS (-7) /* CDブロックファイルシステムの */
363 
364 #define GFS_ERR_NONAME (-8) /* ファイル名を扱えない */
365 #define GFS_ERR_NEXIST (-9) /* 指定されたファイルは存在しない */
366 #define GFS_ERR_FID (-10) /* 不正なファイル識別子 */
367 #define GFS_ERR_HNDL (-11) /* ファイルハンドルが不正 */
368 #define GFS_ERR_SEEK (-12) /* シーク位置が不正 */
369 #define GFS_ERR_ORG (-13) /* 基準位値が不正 */
370 #define GFS_ERR_NUM (-14) /* バイト数が負 */
371 #define GFS_ERR_OFS (-15) /* オフセットが不正 */
372 #define GFS_ERR_FBUSY (-16) /* 指定ファイルの処理が残っている */
373 #define GFS_ERR_PARA (-17) /* パラメータが不正 */
374 #define GFS_ERR_BUSY (-18) /* ライブラリ関数実行中 */
375 #define GFS_ERR_NOHNDL (-19) /* ファイルハンドルに空きがない */
376 #define GFS_ERR_PUINUSE (-20) /* ピックアップ動作中 */
377 #define GFS_ERR_ALIGN (-21) /* 作業領域が4byte境界にない */
378 #define GFS_ERR_TMOUT (-22) /* タイムアウト */
379 #define GFS_ERR_CDOPEN (-23) /* トレイが開いている */
380 #define GFS_ERR_BFUL (-24) /* バッファフルで読み込み中止 */
381 #define GFS_ERR_FATAL (-25) /* CDがFATAL状態 */
382 
383 
384 /* ステータス */
386 {
387  /* ステータスコード(CDドライブ状態) */
388  CDC_ST_BUSY = 0x00, /* 状態遷移中 */
389  CDC_ST_PAUSE = 0x01, /* ポーズ中(一時停止) */
390  CDC_ST_STANDBY = 0x02, /* スタンバイ(ドライブ停止状態) */
391  CDC_ST_PLAY = 0x03, /* CD再生中 */
392  CDC_ST_SEEK = 0x04, /* シーク中 */
393  CDC_ST_SCAN = 0x05, /* スキャン再生中 */
394  CDC_ST_OPEN = 0x06, /* トレイが開いている */
395  CDC_ST_NODISC = 0x07, /* ディスクがない */
396  CDC_ST_RETRY = 0x08, /* リードリトライ処理中 */
397  CDC_ST_ERROR = 0x09, /* リードデータエラーが発生した */
398  CDC_ST_FATAL = 0x0a, /* 致命的エラーが発生した */
399 
400  /* その他 */
401  CDC_ST_PERI = 0x20, /* 定期レスポンス */
402  CDC_ST_TRNS = 0x40, /* データ転送要求あり */
403  CDC_ST_WAIT = 0x80, /* WAIT */
404  CDC_ST_REJECT = 0xff /* REJECT */
405 };
406 
407 /* 転送モード(GFS_SetTmode) */
409 {
410  GFS_TMODE_SCU = 0, /* SCUによりDMA転送 */
411  GFS_TMODE_SDMA0, /* DMAサイクルスチール転送 cn=0 */
412  GFS_TMODE_SDMA1, /* cn=1 */
413  GFS_TMODE_CPU, /* ソフトウェア転送 */
414  GFS_TMODE_STM, /* ストリーム用転送 */
416 };
417 
418 
420 {
421  CDC_PTYPE_DFL, /* 省略値の指定 */
422  CDC_PTYPE_FAD, /* フレームアドレス指定 */
423  CDC_PTYPE_TNO, /* トラック/インデックス指定 */
424  CDC_PTYPE_NOCHG, /* 未変更の指定(設定値を変更しない) */
425 
427 };
428 
429 /* CD位置パラメータ */
430 typedef struct
431 {
432  Sint32 ptype; /* 位置タイプ(位置パラメータの種類の指定)*/
433  union
434  {
435  Sint32 fad; /* フレームアドレス、セクタ数 */
436  struct
437  {
438  Uint8 tno; /* トラック番号 */
439  Uint8 idx; /* インデックス番号 */
440  } trkidx;
441  } pbody;
442 } CdcPos;
443 
444 
445 /* CD再生パラメータ */
446 typedef struct
447 {
448  CdcPos start; /* 開始位置 */
449  CdcPos end; /* 終了位置 */
450  Uint8 pmode; /* 再生モード(ピックアップ移動、繰り返し回数)*/
451 } CdcPly;
452 
453 
454 extern void slInitSound(Uint8 *, Uint32, Uint8 *, Uint32) ;
455 extern Bool slCDDAOn(Uint8, Uint8, Sint8, Sint8) ;
456 extern Sint8 slPCMOn(PCM *, void *, Uint32) ;
457 extern Bool slPCMOff(PCM *) ;
458 extern Sint8 slSndPCMNum() ;
459 extern void slSndFlush() ;
460 extern Bool slPCMStat(PCM *) ;
461 extern Bool slSndVolume(Uint8) ;
462 
463 Sint32 CDC_CdPlay(CdcPly *ply);
464 Sint32 CDC_CdSeek(CdcPos *pos);
465 Sint32 CDC_CdInit(Sint32 iflag, Sint32 stnby, Sint32 ecc, Sint32 retry);
466 
467 /* ファイル情報 */
468 typedef struct
469 {
470  Sint32 fad; /* ファイル先頭フレームアドレス */
471  Sint32 size; /* ファイルサイズ(バイト数) */
472  Uint8 unit; /* ファイルユニットサイズ */
473  Uint8 gap; /* ギャップサイズ */
474  Uint8 fn; /* ファイル番号 */
475  Uint8 atr; /* ファイルアトリビュート */
476 } CdcFile;
477 
478 /* サブヘッダ条件 */
479 typedef struct
480 {
481  Uint8 fn; /* ファイル番号 */
482  Uint8 cn; /* チャネル番号 */
483  Uint8 smmsk; /* サブモードのマスクパターン */
484  Uint8 smval; /* サブモードの比較値 */
485  Uint8 cimsk; /* コーディング情報のマスクパターン */
486  Uint8 cival; /* コーディング情報の比較値 */
487 } CdcSubh;
488 
489 
491  GFS_SEEK_SET = 0, /* 先頭からシーク */
492  GFS_SEEK_CUR, /* 現在の位置からシーク */
493  GFS_SEEK_END /* 終端からシーク */
494 };
495 
496 typedef Sint32 (*GfsTransFunc)(void *obj, Sint32 nsct);
497 
498 
499 
500 /* ファイル情報 */
501 typedef struct
502 {
503  Sint32 fid; /* ファイル識別子 */
505  Sint32 sctsz; /* セクタ長 */
506  Sint32 nsct; /* セクタ数 */
507  Sint32 lstrm; /* 最終セクタ中の無効データ数 */
508 } GfsFinfo;
509 
510 
511 /* CDバッファの資源管理 */
512 typedef struct
513 {
514  Sint32 bufno; /* バッファ区画番号 */
515  Sint32 sctsz; /* CDバッファのセクタサイズ */
516  Sint32 flt; /* 絞り番号 */
517  CdcSubh subh; /* サブヘッダ */
518  Sint32 fmode; /* 絞りモード */
519  Sint32 puid; /* 取得ピックアップのユーザID */
520  Sint32 filepos; /* 先頭データのファイル上の位置 */
521  Sint32 sctpos; /* 転送位置 */
522  /* 再生範囲 */
523  Sint32 sfad; /* 開始FAD */
524  Sint32 efad; /* 終了FAD */
525 } GfsCdRsrc;
526 
527 
528 /* SCSIファイルの仮想CDバッファ管理 */
529 typedef struct
530 {
531  Sint32 fid; /* SCSIファイル識別子 */
532  Sint32 filepos; /* 先頭データのファイル上の位置 */
533  Sint32 sctpos; /* バッファ上のセクタ位置 */
534  Sint32 sctnum; /* バッファ内のセクタ数 */
535 } GfsScsiRsrc;
536 
537 
538 /* メモリファイルの仮想CDバッファ管理 */
539 typedef struct
540 {
541  void *data; /* データ領域 */
542  Sint32 filepos; /* 先頭データのファイル上の位置 */
543  Sint32 sctpos; /* バッファ上のセクタ位置 */
544  Sint32 sctnum; /* バッファ内のセクタ数 */
545 } GfsMemRsrc;
546 
547 
548 /* 読み込み元管理 */
549 typedef struct
550 {
551  /* 読み込み元管理 */
552  Sint32 ftype; /* ファイル種別 */
553  union
554  {
555  GfsCdRsrc cd; /* CDの資源 */
556  GfsScsiRsrc scsi; /* SCSIファイルの資源 */
557  GfsMemRsrc mem; /* メモリファイルの資源 */
558  } rsrc;
559 } GfsDtsrc;
560 
561 
562 /* CDからの読み込みを管理する */
563 typedef struct
564 {
565  GfsFinfo finfo; /* ファイル情報 */
566  GfsDtsrc dtsrc; /* 読み込み元 */
567  Sint32 gmode; /* 取り出しモード */
568  Sint32 stat; /* 実行状態 */
569  /* flow in管理 */
570  Sint32 sct; /* 読み込みセクタ数 */
571  Sint32 sctcnt; /* 読み込みカウンタ */
572  Sint32 sctmax; /* 読み込み最大セクタ数 */
573 } GfsFlow;
574 
575 
576 /* データパック構造体 */
577 typedef struct
578 {
579  void *data; /* データ領域 */
580  Sint32 adlt; /* アドレスの増加分 */
581  Sint32 len; /* 転送バイト数 */
582  Sint32 nsct; /* 転送セクタ数 */
583  Bool use; /* 使用フラグ */
584 } GfsDataPack;
585 
586 
588 
589 /* 転送管理 */
590 /* CDバッファからの転送を管理する */
591 typedef struct
592 {
593  void *buf; /* 転送先アドレス */
594  Sint32 size; /* データ領域のサイズ */
595  Sint32 wp; /* 書き込みオフセット */
596  /* 転送管理 */
597  GfdpHn dps; /* 転送元のデータパック */
598  GfdpHn dpd; /* 転送先からのデータパック */
599  Sint32 tsctmax; /* 1回の転送の最大セクタ数 */
600  Sint32 tsct; /* 転送目標セクタ数 */
601  Sint32 tsctcnt; /* 現在まで転送セクタ数 */
602  Sint32 tbytcnt; /* セクタ内の転送バイト数 */
603  /* 転送関数 */
604  void *obj; /* 転送関数への第1引数 */
605  GfsTransFunc tfunc; /* 転送関数 */
606  Sint32 unit; /* 転送単位 */
607  Bool active; /* 動作中フラグ */
608  Sint32 stat; /* 状態 */
609  Sint32 mode; /* 転送モード */
610 } GfsTrans;
611 
612 
613 typedef GfsTrans *GftrHn;
614 
615 
616 /* オープンしたファイルを管理する */
617 typedef struct
618 {
619  Bool used; /* この構造体が使用中かどうか */
620  Sint32 amode; /* アクセスモード */
621  Sint32 astat; /* アクセス状態 */
624 } GfsFile;
625 
626 #define GFS_FNAME_LEN 12 /* ファイル名の長さ */
627 
628 
629 
630 /* ディレクトリレコード構造体(ファイル名なし) */
631 typedef struct
632 {
634 } GfsDirId;
635 
636 
637 /* ディレクトリレコード構造体(ファイル名あり) */
638 typedef struct
639 {
641  Sint8 fname[GFS_FNAME_LEN]; /* ファイル名 */
642 } GfsDirName;
643 
644 
645 /* ディレクトリ情報管理構造体 */
646 typedef struct
647 {
648  Sint32 type; /* 種別 */
649  Sint32 ndir; /* 最大要素数 */
650  union
651  {
652  GfsDirId *dir_i; /* ファイル名なしディレクトリ情報 */
653  GfsDirName *dir_n; /* ファイル名つきディレクトリ情報 */
654  } dir;
655 } GfsDirTbl;
656 
657 
658 /* ファイルハンドル */
659 typedef GfsFile *GfsHn;
660 
661 #define GFS_FTYPE_NR 3 /* ファイル種別数 */
662 #define GFS_SCTBUF_SIZ 2048 /* セクタバッファの大きさ */
663 #define GFS_OPEN_MAX 24 /* 最大オープンファイル数 */
664 #define GFS_FCONQ_MAX 24 /* 接続コマンドキューの最大長 */
665 
666 /* エラー処理関数 */
667 typedef void (*GfsErrFunc)(void *obj, Sint32 ec);
668 
669 /* エラー状態 */
670 typedef struct
671 {
672  GfsErrFunc func; /* エラー発生時の呼び出し関数 */
673  void *obj; /* 呼び出し関数に渡す第一引数 */
674  Sint32 code; /* エラーコード */
675 } GfsErrStat;
676 
677 #define GFS_CDBBUF_NR 24 /* CDブロックの区画数 */
678 #define GFS_SELQ_MAX 24 /* 絞り設定コマンドキューの最大長 */
679 
680 /* ディレクトリ種別(GFS_LoadDir, GFS_SetDir) */
682 {
683  GFS_DIR_ID = 0, /* ファイル名によるアクセス不可 */
684  GFS_DIR_NAME /* ファイル名によるアクセス可 */
685 };
686 
688 {
689  GFS_SVR_COMPLETED = 0, /* 全ファイルのアクセス終了 */
690  GFS_SVR_BUSY, /* ファイルアクセス中 */
691  GFS_SVR_CDPAUSE, /* CDバッファフルの為一時停止 */
692  GFS_SVR_ERROR /* エラー発生 */
693 };
694 
695 
696 
697 /* 接続コマンドキューの要素(CDブロック管理構造体, GfsCdbMngのメンバ) */
698 typedef struct
699 {
700  Sint32 flt; /* 設定絞り */
701  Sint32 buf; /* 真出力接続バッファ */
702  Sint32 flnout; /* 偽出力接続絞り(負の値を使用) */
703 } GfcdFconQu;
704 
705 
706 /* CDステータス情報(ステータス+CDレポート) */
707 typedef struct
708 {
709  Uint8 status; /* ステータス */
710  struct /* CDレポート */
711  {
712  Uint8 flgrep; /* CDフラグとリピート回数 */
713  Uint8 ctladr; /* CONTROL/ADRバイト */
714  Uint8 tno; /* トラック番号 */
715  Uint8 idx; /* インデックス番号 */
716  Sint32 fad; /* フレームアドレス */
717  } report;
718 } CdcStat;
719 
720 /* 絞り設定コマンドキューの要素(CDブロック管理構造体, GfsCdbMngのメンバ) */
721 typedef struct
722 {
723  Uint8 flt; /* 設定先絞り番号 */
724  Uint8 fmode; /* 絞りモード */
725  CdcSubh subh; /* サブヘッダ */
726  Sint32 fad; /* 開始FAD */
727  Sint32 snum; /* FADセクタ数 */
728 } GfcdSelQu;
729 
730 
731 /* CDブロック管理構造体(管理テーブル, GfsMngのメンバ) */
732 typedef struct
733 {
734  /* 資源管理 */
735  Sint8 use_buf[GFS_CDBBUF_NR]; /* バッファ区画使用状態 */
736  Sint8 use_filt[GFS_CDBBUF_NR]; /* 絞り使用状態 */
737  Bool use_pu; /* ピックアップ使用状態 */
738  Sint32 tr_bufno; /* データ転送中のバッファ区画 */
739  Sint32 puid; /* ピックアップの所有者ID */
740  Sint32 timer; /* タイムアウトカウンタ */
741  CdcStat stat; /* CDブロックの状態 */
742  void (*func)(void *); /* CSCTハンドラ */
743  void *obj; /* CSCTハンドラの引数 */
744  /* GFCD_SetFiltタスク */
745  struct
746  {
747  Sint32 len; /* 絞り設定コマンドキューの長さ */
748  Sint32 stat; /* コマンドキュー先頭の状態 */
749  GfcdSelQu selq[GFS_SELQ_MAX]; /* 絞り設定コマンドキュー */
750  } tsk_setflt;
751  /* GFCD_SetFiltConタスク */
752  struct
753  {
754  Sint32 len; /* 接続コマンドキューの長さ */
755  Sint32 stat; /* タスク終了フラグ */
756  GfcdFconQu fconq[GFS_FCONQ_MAX]; /* 接続コマンドキュー */
757  } tsk_fltcon;
758  /* GFCD_SetConタスク */
759  struct
760  {
761  Sint32 stat; /* タスク終了フラグ */
762  Sint32 flt; /* CD接続先絞り */
763  } tsk_setcon;
764  /* GFCD_GetLenDataタスク */
765  struct
766  {
767  Sint32 stat; /* タスク終了フラグ */
768  Sint32 bufno; /* 対象区画 */
769  Sint32 spos; /* 先頭セクタ位置 */
770  Sint32 usct; /* 要求セクタ数 */
771  Sint32 cnt; /* タスクの実行回数 */
772  Sint32 *nsct; /* 区画内セクタ数格納先 */
773  Sint32 *nbyte; /* 区画内バイト数格納先 */
774  } tsk_getlen;
775  /* GFCD_ReqDataタスク */
776  struct
777  {
778  Sint32 stat; /* タスク終了フラグ */
779  Sint32 bufno; /* 対象区画 */
780  Sint32 sctpos; /* セクタ位置 */
781  Sint32 nsct; /* 要求セクタ数 */
782  } tsk_reqdat;
783  /* GFCD_DelSctDataタスク */
784  struct
785  {
786  Sint32 stat; /* タスク終了フラグ */
787  Sint32 bufno; /* 対象区画 */
788  Sint32 sctpos; /* 削除開始セクタ位置 */
789  Sint32 nsct; /* 削除セクタ数 */
790  } tsk_delsct;
791  /* GFCD_MoveSctDataタスク */
792  struct
793  {
794  Sint32 stat; /* タスク終了フラグ */
795  Sint32 dst; /* 移動先区画 */
796  Sint32 src; /* 移動元区画 */
797  Sint32 spos; /* 移動開始セクタ位置 */
798  Sint32 snum; /* 移動セクタ数 */
799  Sint32 fmode; /* 移動先セレクタの絞りモード保存 */
800  } tsk_movsct;
801  /* GFCD_ChgDirタスク */
802  struct
803  {
804  Sint32 stat; /* タスク終了フラグ */
805  Sint16 fid; /* 設定ファイル識別子 */
806  Sint16 work; /* 作業バッファ */
807  Sint32 *ndir; /* 保持ディレクトリ情報個数 */
808  } tsk_chgdir;
809 } GfsCdbMng;
810 
811 
812 /* アクセスサーバ管理構造体(管理テーブル, GfsMngのメンバ) */
813 typedef struct
814 {
815  GfsHn access_file[GFS_OPEN_MAX]; /* アクセスモード指定済ファイル */
816  Sint32 nfile; /* 登録ファイル数 */
817 } GfsSvr;
818 
819 /* ディレクトリ管理構造体(管理テーブル, GfsMngのメンバ) */
820 typedef struct
821 {
822  GfsDirTbl dirtbl; /* ディレクトリ情報管理 */
823  Sint32 nfile; /* ファイル数 */
824 } GfsDirMng;
825 
826 /* ファイル操作用関数(管理テーブル, GfsMngのメンバ) */
827 typedef struct
828 {
829  Sint32 (*flowin)(GfsFlow *); /* ソースバッファ読み込み関数 */
830  void (*stopin)(GfsFlow *, Bool); /* 読み込み中止関数 */
831  Sint32 (*seek)(GfsFlow *, Sint32); /* アクセスポインタ設定関数 */
832  Sint32 (*tell)(GfsFlow *); /* アクセスポインタ取得関数 */
833 } GfsFileFunc;
834 
835 
836 /* 管理テーブル */
837 typedef struct
838 {
839  Sint32 openmax; /* オープンファイルの最大数 */
840  GfsFileFunc functbl[GFS_FTYPE_NR]; /* ファイル操作用関数 */
841  GfsSvr svr; /* アクセスサーバ */
842  GfsDirMng curdir; /* カレントディレクトリ */
843  GfsHn pickup; /* ピックアップ制御中ファイル */
844  Sint32 sfad; /* 再生範囲:開始FAD */
845  Sint32 efad; /* 再生範囲:終了FAD+1 */
846  GfsHn trans; /* データ転送中ファイル */
847  GfsErrStat error; /* エラー状態 */
848  Uint32 flags; /* デバイス接続情報など */
849  Sint32 timer; /* タイムアウトカウンタ */
850  GfsCdbMng cdb; /* CDブロック管理構造体 */
851  GfsDataPack srcpk; /* 転送元データパック */
852  GfsDataPack dstpk; /* 転送先データパック */
853  Uint8 sect_buf[GFS_SCTBUF_SIZ]; /* 1セクタの読み込み用バッファ */
854  GfsFile file[1]; /* 全ハンドルの配列(可変長) */
855 } GfsMng;
856 
857 #define GFS_WORK_SIZE(open_max) \
858  (sizeof(GfsMng) + ((open_max) - 1) * sizeof(GfsFile))
859 #define GFS_DIRTBL_TYPE(dirtbl) ((dirtbl)->type)
860 #define GFS_DIRTBL_DIRNAME(dirtbl) ((dirtbl)->dir.dir_n)
861 #define GFS_DIRTBL_NDIR(dirtbl) ((dirtbl)->ndir)
862 
863 /* ファイルシステムの初期化 */
864 Sint32 GFS_Init(Sint32 open_max, void *work, GfsDirTbl *dirtbl);
865 /* 即時復帰型読み込み */
866 Sint32 GFS_NwFread(GfsHn gfs, Sint32 nsct, void *buf, Sint32 bsize);
867 /* ファイル単位でのアクセス動作の実行 */
869 /* 完了復帰型読み込み */
870 Sint32 GFS_Fread(GfsHn gfs, Sint32 nsct, void *buf, Sint32 bsize);
871 /* アクセス状態の取得 */
872 void GFS_NwGetStat(GfsHn gfs, Sint32 *amode, Sint32 *ndata);
873 /* ファイルハンドルの割当て */
874 GfsHn GFS_Open(Sint32 fid);
875 /* ファイルハンドルの割当て解除 */
876 void GFS_Close(GfsHn gfs);
877 void GFS_GetFileSize(GfsHn gfs, Sint32 *sctsz, Sint32 *nsct, Sint32 *lstsz);
878 Sint32 GFS_NwCdRead(GfsHn gfs, Sint32 nsct);
879 Sint32 GFS_SetTransPara(GfsHn gfs, Sint32 tsize);
880 
881 Sint32 GFS_LoadDir(Sint32 fid, GfsDirTbl *dirtbl);
882 Sint32 GFS_SetDir(GfsDirTbl *dirtbl);
883 Sint32 GFS_NameToId(Sint8 *fname);
884 Sint32 GFS_Load(Sint32 fid, Sint32 ofs, void *buf, Sint32 bsize);
885 Sint32 GFS_Seek(GfsHn gfs, Sint32 ofs, Sint32 org);
886 
887 typedef struct /* RTC時刻 */
888 {
889  Uint16 year; /* 西暦年号 */
890  Uint8 month; /* 曜日・月 */
891  Uint8 date; /* 日 */
892  Uint8 hour; /* 時 */
893  Uint8 minute; /* 分 */
894  Uint8 second; /* 秒 */
895  Uint8 dummy; /* ダミー */
896 } SmpcDateTime;
897 
898 
899 typedef struct /* SMPCステータス */
900 {
901  Uint8 cond; /* 状態ステータス */
902  Uint8 dummy1; /* ダミー1 */
903  Uint16 dummy2; /* ダミー2 */
904  SmpcDateTime rtc; /* RTC時刻 */
905  Uint8 ctg; /* カートリッジコード */
906  Uint8 area; /* エリアコード */
907  Uint16 system; /* システムステータス */
908  Uint32 smem; /* SMPCメモリ保持データ */
909 } SmpcStatus;
910 
911 enum SmpcLanguage /* SMPCメモリ言語番号 */
912 {
913  SMPC_ENGLISH, /* (00) 英語 */
914  SMPC_DEUTSCH, /* (01) ドイツ語 */
915  SMPC_FRANCAIS, /* (02) フランス語 */
916  SMPC_ESPANOL, /* (03) スペイン語 */
917  SMPC_ITALIANO, /* (04) イタリア語 */
918  SMPC_JAPAN /* (05) 日本語 */
919 };
920 
921 extern void slIntFunction(void (*func)()) ;
922 extern Uint8 slGetLanguage(void);
923 
924 extern SmpcStatus* Smpc_Status;
925 #define slGetStatus() slRequestCommand(SMPC_GETSTS, SMPC_NO_WAIT)
926 
927 
928 #define COL_256 (2+0) /* カラーバンク256色モード */
929 #define COL_32K (2-1) /* RGB32K色モード */
930 
931 #define SPR_ATTRIBUTE(t,c,g,a,d) {t,(a)|(((d)>>24)&0xc0),c,g,(d)&0x0f3f}
932 #define FUNC_Sprite 1
933 #define CL256Bnk (4 << 3) /* カラーバンク256色モード */
934 
935 #define SpriteVRAM 0x25c00000
936 
937 #define CGADDRESS 0x10000
938 #define AdjCG(cga,hs,vs,col) ((cga) + (((((hs)*(vs)*4)>>(col))+0x1f) &0x7ffe0))
939 #define TEXTBL(hs,vs,cga) {hs , vs , (cga)>>3 , ((hs)&0x1f8)<<5|(vs)}
940 #define PICTBL(texno,cmode,pcsrc) {(Uint16)(texno),(Uint16)(cmode),(void *)(pcsrc)}
941 
942 /*
943 #include <SGL_CPK.H>
944 */
945 
946 #else /* JO_COMPILE_USING_SGL */
947 
948 #include <sgl.h>
949 #include <sl_def.h>
950 #include <SEGA_CDC.H>
951 #include <SEGA_GFS.H>
952 
953 #endif
954 
955 /*
956 #include <SEGA_SYS.H>
957 */
958 void SYS_Exit(Sint32 code);
959 
960 #endif /* !__JO_SGL_PROTOTYPES_H__ */
961 
962 /*
963 ** END OF FILE
964 */
Definition: sgl_prototypes.h:390
Definition: sgl_prototypes.h:577
Sint8 pan
Definition: sgl_prototypes.h:142
Sint32 sctpos
Definition: sgl_prototypes.h:543
Sint32 adlt
Definition: sgl_prototypes.h:580
void slTVOff(void)
Definition: sgl_prototypes.h:110
void * obj
Definition: sgl_prototypes.h:604
Sint32 gmode
Definition: sgl_prototypes.h:567
Definition: sgl_prototypes.h:159
Uint8 fmode
Definition: sgl_prototypes.h:724
POLYGON * pltbl
Definition: sgl_prototypes.h:215
Definition: sgl_prototypes.h:256
Uint8 fn
Definition: sgl_prototypes.h:481
Bool use
Definition: sgl_prototypes.h:583
Definition: sgl_prototypes.h:253
Definition: sgl_prototypes.h:261
SmpcWaitMode
Definition: sgl_prototypes.h:172
Uint16 push
Definition: sgl_prototypes.h:240
Bool use_pu
Definition: sgl_prototypes.h:737
void * obj
Definition: sgl_prototypes.h:743
Definition: sgl_prototypes.h:393
GfsErrStat error
Definition: sgl_prototypes.h:847
Definition: sgl_prototypes.h:174
Uint8 eflevelL
Definition: sgl_prototypes.h:146
Sint32 GFS_Load(Sint32 fid, Sint32 ofs, void *buf, Sint32 bsize)
void slInitSystem(Uint16, TEXTURE *, Sint8)
Uint8 Per_Connect2
Definition: sgl_prototypes.h:391
Definition: sgl_prototypes.h:413
Definition: sgl_prototypes.h:153
Definition: sgl_prototypes.h:421
Sint32 sctcnt
Definition: sgl_prototypes.h:571
Definition: sgl_prototypes.h:260
Definition: sgl_prototypes.h:426
Definition: sgl_prototypes.h:529
Uint8 status
Definition: sgl_prototypes.h:709
Definition: sgl_prototypes.h:389
Sint32 amode
Definition: sgl_prototypes.h:620
Uint8 hour
Definition: sgl_prototypes.h:892
float Float32
Definition: sgl_prototypes.h:108
void slUnitMatrix(MATRIX)
CdcPos start
Definition: sgl_prototypes.h:448
Bool slPushMatrix(void)
Definition: sgl_prototypes.h:260
Uint8 Per_Connect1
Definition: sgl_prototypes.h:185
GfsTrans * GftrHn
Definition: sgl_prototypes.h:613
Sint32 fid
Definition: sgl_prototypes.h:503
unsigned short Uint16
Definition: sgl_prototypes.h:103
Definition: sgl_prototypes.h:256
GfsServerStatus
Definition: sgl_prototypes.h:687
Sint32 fmode
Definition: sgl_prototypes.h:518
Definition: sgl_prototypes.h:235
Definition: sgl_prototypes.h:181
Definition: sgl_prototypes.h:255
Sint8 slSndPCMNum()
Definition: sgl_prototypes.h:169
Uint8 level
Definition: sgl_prototypes.h:141
void slMapNbg1(void *, void *, void *, void *)
Definition: sgl_prototypes.h:411
Uint8 ctg
Definition: sgl_prototypes.h:905
Sint32 nfile
Definition: sgl_prototypes.h:823
Uint8 channel
Definition: sgl_prototypes.h:140
Sint32 code
Definition: sgl_prototypes.h:674
Uint32 nbPoint
Definition: sgl_prototypes.h:214
Definition: sgl_prototypes.h:670
Definition: sgl_prototypes.h:430
Sint32 CDC_CdInit(Sint32 iflag, Sint32 stnby, Sint32 ecc, Sint32 retry)
Sint32 openmax
Definition: sgl_prototypes.h:839
Definition: sgl_prototypes.h:253
Definition: sgl_prototypes.h:152
Sint32 nsct
Definition: sgl_prototypes.h:506
int Bool
Definition: sgl_prototypes.h:107
GfsErrFunc func
Definition: sgl_prototypes.h:672
Sint32 filepos
Definition: sgl_prototypes.h:520
Definition: sgl_prototypes.h:468
Definition: sgl_prototypes.h:446
Uint16 pitch
Definition: sgl_prototypes.h:143
Definition: sgl_prototypes.h:155
CdcStat stat
Definition: sgl_prototypes.h:741
FIXED VECTOR[XYZ]
Definition: sgl_prototypes.h:128
Uint8 sort
Definition: sgl_prototypes.h:197
Sint32 unit
Definition: sgl_prototypes.h:606
void slSndFlush()
Sint32 sctnum
Definition: sgl_prototypes.h:544
Definition: sgl_prototypes.h:253
Uint8 pmode
Definition: sgl_prototypes.h:450
Definition: sgl_prototypes.h:591
Uint8 gap
Definition: sgl_prototypes.h:473
Definition: sgl_prototypes.h:732
Sint32 GFS_NwCdRead(GfsHn gfs, Sint32 nsct)
Uint16 gstb
Definition: sgl_prototypes.h:201
Definition: sgl_prototypes.h:165
Sint32 type
Definition: sgl_prototypes.h:648
unsigned long Uint32
Definition: sgl_prototypes.h:105
Sint32 size
Definition: sgl_prototypes.h:471
#define GFS_FTYPE_NR
Definition: sgl_prototypes.h:661
Definition: sgl_prototypes.h:110
Definition: sgl_prototypes.h:166
Definition: sgl_prototypes.h:256
Sint32 sfad
Definition: sgl_prototypes.h:844
Sint32 GFS_Fread(GfsHn gfs, Sint32 nsct, void *buf, Sint32 bsize)
Definition: sgl_prototypes.h:398
Definition: sgl_prototypes.h:539
Definition: sgl_prototypes.h:512
void slBitMapNbg1(Uint16, Uint16, void *)
Sint32 stat
Definition: sgl_prototypes.h:608
Uint16 colno
Definition: sgl_prototypes.h:200
Uint8 smmsk
Definition: sgl_prototypes.h:483
Uint16 texno
Definition: sgl_prototypes.h:198
Uint32 nbPolygon
Definition: sgl_prototypes.h:216
CdcPosType
Definition: sgl_prototypes.h:419
base
Definition: sgl_prototypes.h:111
Definition: sgl_prototypes.h:913
Uint8 slGetLanguage(void)
GfdpHn dps
Definition: sgl_prototypes.h:597
Sint32 timer
Definition: sgl_prototypes.h:849
Bool slWindow(Sint16, Sint16, Sint16, Sint16, Sint16, Sint16, Sint16)
void slRotZ(ANGLE)
Sint32 wp
Definition: sgl_prototypes.h:595
Definition: sgl_prototypes.h:110
GfsHn GFS_Open(Sint32 fid)
Definition: sgl_prototypes.h:110
GfsFlow flow
Definition: sgl_prototypes.h:622
CdcFile dirrec
Definition: sgl_prototypes.h:640
Uint32 flags
Definition: sgl_prototypes.h:848
Definition: sgl_prototypes.h:388
#define GFS_FNAME_LEN
Definition: sgl_prototypes.h:626
Definition: sgl_prototypes.h:255
GfsTrans trans
Definition: sgl_prototypes.h:623
GfsDataPack dstpk
Definition: sgl_prototypes.h:852
Sint32 tsctmax
Definition: sgl_prototypes.h:599
Definition: sgl_prototypes.h:707
Definition: sgl_prototypes.h:414
#define GFS_CDBBUF_NR
Definition: sgl_prototypes.h:677
GfsCdbMng cdb
Definition: sgl_prototypes.h:850
Sint32 puid
Definition: sgl_prototypes.h:519
Definition: sgl_prototypes.h:110
Definition: sgl_prototypes.h:424
Definition: sgl_prototypes.h:261
void * obj
Definition: sgl_prototypes.h:673
Definition: sgl_prototypes.h:205
Uint16 dir
Definition: sgl_prototypes.h:191
Definition: sgl_prototypes.h:493
Definition: sgl_prototypes.h:422
GfsSeekMode
Definition: sgl_prototypes.h:490
Definition: sgl_prototypes.h:113
Definition: sgl_prototypes.h:479
Uint8 fn
Definition: sgl_prototypes.h:474
signed short Sint16
Definition: sgl_prototypes.h:104
Definition: sgl_prototypes.h:156
void slLookAt(FIXED *camera, FIXED *target, ANGLE)
Uint16 texno
Definition: sgl_prototypes.h:230
Bool active
Definition: sgl_prototypes.h:607
Definition: sgl_prototypes.h:110
signed char Sint8
Definition: sgl_prototypes.h:102
Definition: sgl_prototypes.h:258
Sint32 bufno
Definition: sgl_prototypes.h:514
GfsHn trans
Definition: sgl_prototypes.h:846
PerDigital * Smpc_Peripheral
Sint32 GFS_NwExecOne(GfsHn gfs)
Uint16 system
Definition: sgl_prototypes.h:907
Sint32 sctpos
Definition: sgl_prototypes.h:521
Definition: sgl_prototypes.h:157
Definition: sgl_prototypes.h:254
Uint16 Hsize
Definition: sgl_prototypes.h:222
Definition: sgl_prototypes.h:410
void slCurColor(Uint16)
Definition: sgl_prototypes.h:122
Uint8 month
Definition: sgl_prototypes.h:890
Definition: sgl_prototypes.h:691
Sint32 efad
Definition: sgl_prototypes.h:845
Definition: sgl_prototypes.h:827
CdcFile dirrec
Definition: sgl_prototypes.h:633
SmpcDateTime rtc
Definition: sgl_prototypes.h:904
Bool slPCMOff(PCM *)
Definition: sgl_prototypes.h:253
Definition: sgl_prototypes.h:914
Sint32 buf
Definition: sgl_prototypes.h:701
Definition: sgl_prototypes.h:110
Sint32 size
Definition: sgl_prototypes.h:594
GfsTransFunc tfunc
Definition: sgl_prototypes.h:605
FIXED MATRIX[4][3]
Definition: sgl_prototypes.h:127
void * pcsrc
Definition: sgl_prototypes.h:232
SmpcLanguage
Definition: sgl_prototypes.h:911
void slZdspLevel(Uint16)
Uint16 CGadr
Definition: sgl_prototypes.h:224
Sint32 tsctcnt
Definition: sgl_prototypes.h:601
Uint8 cond
Definition: sgl_prototypes.h:901
Uint8 date
Definition: sgl_prototypes.h:891
Uint8 flag
Definition: sgl_prototypes.h:196
Definition: sgl_prototypes.h:121
Definition: sgl_prototypes.h:182
Definition: sgl_prototypes.h:721
Sint32 CDC_CdSeek(CdcPos *pos)
Definition: sgl_prototypes.h:162
void * slLocate(Uint16, Uint16)
Uint16 atrb
Definition: sgl_prototypes.h:188
Uint16 atrb
Definition: sgl_prototypes.h:199
#define GFS_FCONQ_MAX
Definition: sgl_prototypes.h:664
ATTR * attbl
Definition: sgl_prototypes.h:217
Bool slPopMatrix(void)
VECTOR norm
Definition: sgl_prototypes.h:207
void slTranslate(FIXED, FIXED, FIXED)
Definition: sgl_prototypes.h:915
Sint32 fad
Definition: sgl_prototypes.h:726
Uint8 eflevelR
Definition: sgl_prototypes.h:144
Definition: sgl_prototypes.h:492
#define GFS_SCTBUF_SIZ
Definition: sgl_prototypes.h:662
Bool slSndVolume(Uint8)
Definition: sgl_prototypes.h:501
Definition: sgl_prototypes.h:392
Sint32 snum
Definition: sgl_prototypes.h:727
void slIntFunction(void(*func)())
Definition: sgl_prototypes.h:114
void slSynch(void)
Definition: sgl_prototypes.h:248
GfsDirType
Definition: sgl_prototypes.h:681
Sint32 lstrm
Definition: sgl_prototypes.h:507
Sint32 sctpos
Definition: sgl_prototypes.h:533
void GFS_Close(GfsHn gfs)
Sint16 ANGLE
Definition: sgl_prototypes.h:125
POINT * pntbl
Definition: sgl_prototypes.h:213
void slScrPosNbg1(FIXED x, FIXED y)
Sint32 stat
Definition: sgl_prototypes.h:568
Sint32 sctnum
Definition: sgl_prototypes.h:534
Sint32 flt
Definition: sgl_prototypes.h:516
Sint32 filepos
Definition: sgl_prototypes.h:542
Definition: sgl_prototypes.h:163
Definition: sgl_prototypes.h:683
Uint16 colno
Definition: sgl_prototypes.h:189
Definition: sgl_prototypes.h:396
Definition: sgl_prototypes.h:158
Sint32 nfile
Definition: sgl_prototypes.h:816
Definition: sgl_prototypes.h:563
Sint32 ndir
Definition: sgl_prototypes.h:649
Sint32 ftype
Definition: sgl_prototypes.h:552
Sint32 flt
Definition: sgl_prototypes.h:700
void slPriority(Sint16, Uint16)
Sint32 mode
Definition: sgl_prototypes.h:609
void(* GfsErrFunc)(void *obj, Sint32 ec)
Definition: sgl_prototypes.h:667
Sint32 GFS_Init(Sint32 open_max, void *work, GfsDirTbl *dirtbl)
void slRotX(ANGLE)
Uint8 ext
Definition: sgl_prototypes.h:238
void slBack1ColSet(void *, Uint16)
Sint32 efad
Definition: sgl_prototypes.h:524
Definition: sgl_prototypes.h:110
Definition: sgl_prototypes.h:167
Definition: sgl_prototypes.h:394
#define GFS_OPEN_MAX
Definition: sgl_prototypes.h:663
Definition: sgl_prototypes.h:258
GfsFinfo finfo
Definition: sgl_prototypes.h:565
Definition: sgl_prototypes.h:638
Sint32 flnout
Definition: sgl_prototypes.h:702
Definition: sgl_prototypes.h:255
Sint32(* GfsTransFunc)(void *obj, Sint32 nsct)
Definition: sgl_prototypes.h:496
Definition: sgl_prototypes.h:631
CdcFile finfo
Definition: sgl_prototypes.h:504
GfsDirMng curdir
Definition: sgl_prototypes.h:842
Definition: sgl_prototypes.h:168
Sint32 nsct
Definition: sgl_prototypes.h:582
Definition: sgl_prototypes.h:918
Bool slCDDAOn(Uint8, Uint8, Sint8, Sint8)
Sint32 ptype
Definition: sgl_prototypes.h:432
Definition: sgl_prototypes.h:255
Bool slScrAutoDisp(Uint32)
Sint32 GFS_LoadDir(Sint32 fid, GfsDirTbl *dirtbl)
Sint32 tbytcnt
Definition: sgl_prototypes.h:602
Uint8 efselectL
Definition: sgl_prototypes.h:147
Sint32 FIXED
Definition: sgl_prototypes.h:126
Uint16 texno
Definition: sgl_prototypes.h:187
void slCharNbg0(Uint16 type, Uint16 size)
Sint32 GFS_NwFread(GfsHn gfs, Sint32 nsct, void *buf, Sint32 bsize)
Definition: sgl_prototypes.h:175
Sint32 GFS_SetDir(GfsDirTbl *dirtbl)
Definition: sgl_prototypes.h:412
Definition: sgl_prototypes.h:690
GfsSvr svr
Definition: sgl_prototypes.h:841
Bool used
Definition: sgl_prototypes.h:619
Definition: sgl_prototypes.h:260
Definition: sgl_prototypes.h:254
Definition: sgl_prototypes.h:689
Sint32 timer
Definition: sgl_prototypes.h:740
Uint8 area
Definition: sgl_prototypes.h:906
Definition: sgl_prototypes.h:837
CdcStatus
Definition: sgl_prototypes.h:385
Sint32 GFS_Seek(GfsHn gfs, Sint32 ofs, Sint32 org)
Definition: sgl_prototypes.h:137
Sint32 tr_bufno
Definition: sgl_prototypes.h:738
Uint8 id
Definition: sgl_prototypes.h:237
void slCharNbg1(Uint16 type, Uint16 size)
Uint8 flt
Definition: sgl_prototypes.h:723
BooleanLogic
Definition: sgl_prototypes.h:245
Uint16 dummy2
Definition: sgl_prototypes.h:903
Uint8 dummy
Definition: sgl_prototypes.h:895
Definition: sgl_prototypes.h:194
void SYS_Exit(Sint32 code)
GfsDataPack * GfdpHn
Definition: sgl_prototypes.h:587
void slInitSound(Uint8 *, Uint32, Uint8 *, Uint32)
Uint8 atr
Definition: sgl_prototypes.h:475
void slPrint(char *, void *)
Sint32 astat
Definition: sgl_prototypes.h:621
void slDMACopy(void *, void *, Uint32)
Definition: sgl_prototypes.h:261
Uint8 cival
Definition: sgl_prototypes.h:486
Definition: sgl_prototypes.h:261
Definition: sgl_prototypes.h:116
Definition: sgl_prototypes.h:258
Definition: sgl_prototypes.h:491
Uint8 cn
Definition: sgl_prototypes.h:482
Definition: sgl_prototypes.h:820
CdcSubh subh
Definition: sgl_prototypes.h:517
Definition: sgl_prototypes.h:684
Uint16 Vsize
Definition: sgl_prototypes.h:223
GfsDtsrc dtsrc
Definition: sgl_prototypes.h:566
Definition: sgl_prototypes.h:899
Definition: sgl_prototypes.h:646
Definition: sgl_prototypes.h:115
Uint16 dir
Definition: sgl_prototypes.h:202
Uint8 dummy1
Definition: sgl_prototypes.h:902
Definition: sgl_prototypes.h:402
Definition: sgl_prototypes.h:164
unsigned char Uint8
Definition: sgl_prototypes.h:101
Definition: sgl_prototypes.h:258
void * data
Definition: sgl_prototypes.h:541
Bool slDispSprite(FIXED *, SPR_ATTR *attr, ANGLE)
CdcPos end
Definition: sgl_prototypes.h:449
Definition: sgl_prototypes.h:259
Uint8 smval
Definition: sgl_prototypes.h:484
GfsTransMode
Definition: sgl_prototypes.h:408
Uint16 gstb
Definition: sgl_prototypes.h:190
void * data
Definition: sgl_prototypes.h:579
Uint16 year
Definition: sgl_prototypes.h:889
Uint16 cmode
Definition: sgl_prototypes.h:231
Sint32 filepos
Definition: sgl_prototypes.h:532
Definition: sgl_prototypes.h:260
Sint32 sfad
Definition: sgl_prototypes.h:523
Sint32 sctsz
Definition: sgl_prototypes.h:515
Uint8 mode
Definition: sgl_prototypes.h:139
Definition: sgl_prototypes.h:813
GfsDataPack srcpk
Definition: sgl_prototypes.h:851
Definition: sgl_prototypes.h:110
Definition: sgl_prototypes.h:692
SmpcCommand
Definition: sgl_prototypes.h:150
Bool slRequestCommand(Uint8, Uint8)
Sint32 GFS_NameToId(Sint8 *fname)
Definition: sgl_prototypes.h:254
Sint32 sctmax
Definition: sgl_prototypes.h:572
Bool slPCMStat(PCM *)
Definition: sgl_prototypes.h:617
void slPageNbg1(void *, void *, Uint16)
Definition: sgl_prototypes.h:698
Uint16 data
Definition: sgl_prototypes.h:239
Uint8 cimsk
Definition: sgl_prototypes.h:485
Uint16 HVsize
Definition: sgl_prototypes.h:225
Definition: sgl_prototypes.h:110
BooleanSwitch
Definition: sgl_prototypes.h:179
Definition: sgl_prototypes.h:154
Bool slPutPolygon(PDATA *)
Definition: sgl_prototypes.h:916
CdcSubh subh
Definition: sgl_prototypes.h:725
void GFS_NwGetStat(GfsHn gfs, Sint32 *amode, Sint32 *ndata)
Definition: sgl_prototypes.h:247
Uint8 efselectR
Definition: sgl_prototypes.h:145
Sint32 puid
Definition: sgl_prototypes.h:739
Sint32 CDC_CdPlay(CdcPly *ply)
Definition: sgl_prototypes.h:228
Uint16 pull
Definition: sgl_prototypes.h:241
Uint8 second
Definition: sgl_prototypes.h:894
pln
Definition: sgl_prototypes.h:119
signed long Sint32
Definition: sgl_prototypes.h:106
Uint8 minute
Definition: sgl_prototypes.h:893
ps
Definition: sgl_prototypes.h:110
Sint8 slPCMOn(PCM *, void *, Uint32)
Definition: sgl_prototypes.h:254
Definition: sgl_prototypes.h:395
void slPlaneNbg1(Uint16)
Sint32 len
Definition: sgl_prototypes.h:581
Sint32 sctsz
Definition: sgl_prototypes.h:505
Uint8 unit
Definition: sgl_prototypes.h:472
Definition: sgl_prototypes.h:259
Definition: sgl_prototypes.h:404
Definition: sgl_prototypes.h:917
void slTVOn(void)
Definition: sgl_prototypes.h:549
Definition: sgl_prototypes.h:259
Definition: sgl_prototypes.h:415
Sint32 fid
Definition: sgl_prototypes.h:531
FIXED POINT[XYZ]
Definition: sgl_prototypes.h:129
Definition: sgl_prototypes.h:397
Uint32 smem
Definition: sgl_prototypes.h:908
SmpcStatus * Smpc_Status
Definition: sgl_prototypes.h:259
Definition: sgl_prototypes.h:403
Sint32 fad
Definition: sgl_prototypes.h:470
Definition: sgl_prototypes.h:256
GfsDirTbl dirtbl
Definition: sgl_prototypes.h:822
Definition: sgl_prototypes.h:220
void * buf
Definition: sgl_prototypes.h:593
Definition: sgl_prototypes.h:211
void slLight(VECTOR)
void slRotY(ANGLE)
GfsHn pickup
Definition: sgl_prototypes.h:843
GfdpHn dpd
Definition: sgl_prototypes.h:598
GfsFile * GfsHn
Definition: sgl_prototypes.h:659
void slZoomNbg1(FIXED x, FIXED y)
Sint32 GFS_SetTransPara(GfsHn gfs, Sint32 tsize)
Sint32 tsct
Definition: sgl_prototypes.h:600
Definition: sgl_prototypes.h:401
Definition: sgl_prototypes.h:423
Sint32 sct
Definition: sgl_prototypes.h:570
void slPerspective(ANGLE)
tvsz
Definition: sgl_prototypes.h:251
#define GFS_SELQ_MAX
Definition: sgl_prototypes.h:678
Definition: sgl_prototypes.h:160
void GFS_GetFileSize(GfsHn gfs, Sint32 *sctsz, Sint32 *nsct, Sint32 *lstsz)
Definition: sgl_prototypes.h:887
void slScale(FIXED, FIXED, FIXED)
Definition: sgl_prototypes.h:161