#include #include #include "pub.h" #include "pad.h" #include "action.h" #include "vsync.h" #include "texture.h" #include "actinit.h" volatile long VScnt=0; volatile u_char *bb0,*bb1; long padinfo; /*---------------------------------------------------------------------- めいん ----------------------------------------------------------------------*/ void main( void ){ short i; short finish; RECT size; finish = 1; InitPad(); VSyncCallback( VSfunc ); ExitCriticalSection(); GsInitGraph(320, 240, 4, 0, 0); /* 描画・表示環境の設定 */ GsDefDispBuff(0, 0, 0, 240); /* 同上 */ /* オーダリングテーブル情報の設定 */ for (i = 0; i < 2; i++) { WorldOT[i].length = OT_LENGTH; WorldOT[i].org = OTTags[i]; } FntLoad(960, 256); /* 基本フォントパターンをフレームバッファにロード */ FntOpen(16, 16, 256, 200, 0, 512); /* フォントの表示位置の設定 */ size.w = size.h = 64; InitSprite((long *)0x80110000, sprt, size, 32 ); /* Kuntihov */ InitSprite((long *)0x80118040, sprt, size, 4 ); /* Kubi */ // InitSprite((long *)0x801200C0, sprt, size, 4 ); /* Shand */ // InitSprite((long *)0x80128100, sprt, size, 4 ); /* Bhand */ InitSprite((long *)0x80130140, sprt, size, 1 ); /* Hige */ InitSprite((long *)0x80140180, sprt, size, 1 ); /* Baku */ bgd = malloc( (short)(128*128) ); bzero( bgd, 128*128 ); printf(" bgd = %x\n",(u_long)bgd); // init_BG(); InitAct(); InitPlayer(); InitKubi(); // InitHige(); /* メインループ */ while (finish != 0) { padinfo = PadRead(1); if (padinfo == PADselect) finish = 0; /* ダブルバッファの切り替え */ activeBuff = GsGetActiveBuff(); GsSetWorkBase((PACKET *)GpuPacketArea[activeBuff]); /* オーダリングテーブルのクリア */ GsClearOt( 0, 0, &WorldOT[activeBuff] ); GoAction(); /* BG描画 */ // GsSortFixBg16( BGData, BGWork[0], &WorldOT[activeBuff], 1 ); DrawSync(0); /* 描画の終了待ち */ VSync(0); GsSwapDispBuff(); /* 画面クリアプリミティブのオーダリングテーブルへの登録 */ GsSortClear(60, 120, 120, &WorldOT[activeBuff]); /* OTに登録されたプリミティブの描画開始 */ GsDrawOt( &WorldOT[activeBuff] ); FntPrint( "VSync = %d\n", VScnt ); FntFlush( -1 ); } EnterCriticalSection(); VSyncCallback( NULL ); free(bgd); }