Ejemplo n.º 1
0
void SetupGSKit()
{
    /* detect and set screentype */
    if (gsGlobal != NULL) gsKit_deinit_global(gsGlobal);
    gsGlobal = gsKit_init_global();

    /* initialize dmaKit */
    dmaKit_init(D_CTRL_RELE_OFF, D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF);

    dmaKit_chan_init(DMA_CHANNEL_GIF);
    dmaKit_chan_init(DMA_CHANNEL_FROMSPR);
    dmaKit_chan_init(DMA_CHANNEL_TOSPR);

    gsGlobal->DoubleBuffering = GS_SETTING_OFF;
    gsGlobal->ZBuffering      = GS_SETTING_OFF;

    // 640x448, ntsc, tv
    // 640x512, pal, tv
}
Ejemplo n.º 2
0
Archivo: main.c Proyecto: ps2dev/gsKit
int main(int argc, char *argv[])
{
#ifdef HIRES_MODE
	GSGLOBAL *gsGlobal = gsKit_hires_init_global();
#else
	GSGLOBAL *gsGlobal = gsKit_init_global();
#endif
	int iPassCount;

#if 0
	gsGlobal->Mode = GS_MODE_NTSC;
	gsGlobal->Interlace = GS_INTERLACED;
	//gsGlobal->Field = GS_FIELD;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 704;
	gsGlobal->Height = 464;
	iXOffset = -32;
	iYOffset = 8;
	iPassCount = 2;
#endif
#if 0
	gsGlobal->Mode = GS_MODE_PAL;
	gsGlobal->Interlace = GS_INTERLACED;
	//gsGlobal->Field = GS_FIELD;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 704;
	gsGlobal->Height = 556;
	iXOffset = -10;
	iYOffset = 5;
	iPassCount = 3;
#endif
#if 0
	gsGlobal->Mode = GS_MODE_DTV_480P;
	gsGlobal->Interlace = GS_NONINTERLACED;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 704;
	gsGlobal->Height = 462;
	iXOffset = -4;
	iYOffset = 3;
	iPassCount = 2;
#endif
#if 0
	gsGlobal->Mode = GS_MODE_DTV_576P;
	gsGlobal->Interlace = GS_NONINTERLACED;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 704;
	gsGlobal->Height = 556;
	iXOffset = 0;
	iYOffset = 0;
	iPassCount = 3;
#endif
#if 0
	gsGlobal->Mode = GS_MODE_DTV_720P;
	gsGlobal->Interlace = GS_NONINTERLACED;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 1280;
	gsGlobal->Height = 720;//704;
	iXOffset = 0;
	iYOffset = 0;
	iPassCount = 3;
#endif
#if 1
	gsGlobal->Mode = GS_MODE_DTV_1080I;
	gsGlobal->Interlace = GS_INTERLACED;
	//gsGlobal->Field = GS_FIELD;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width  = 1920;
	gsGlobal->Height = 1080;
	iXOffset = 0;
	iYOffset = 0;
	iPassCount = 3;
#endif
#if 0
	gsGlobal->Mode = GS_MODE_VGA_1280_60;
	gsGlobal->Interlace = GS_NONINTERLACED;
	gsGlobal->Field = GS_FRAME;
	gsGlobal->Width = 1280;
	gsGlobal->Height = 1024;
	iXOffset = 0;
	iYOffset = 0;
	iPassCount = 4;
#endif

	if ((gsGlobal->Interlace == GS_INTERLACED) && (gsGlobal->Field == GS_FRAME))
		gsGlobal->Height /= 2;

	gsGlobal->PSM  = GS_PSM_CT16S;
	gsGlobal->PSMZ = GS_PSMZ_16S;

	gsGlobal->Dithering = GS_SETTING_ON;
	gsGlobal->DoubleBuffering = GS_SETTING_ON;
	gsGlobal->ZBuffering = GS_SETTING_ON;

	dmaKit_init(D_CTRL_RELE_OFF, D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC,
		    D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF);

	// Initialize the DMAC
	dmaKit_chan_init(DMA_CHANNEL_GIF);

#ifdef HIRES_MODE
	gsKit_hires_init_screen(gsGlobal, iPassCount);
#else
	gsKit_init_screen(gsGlobal);
#endif
	gsKit_set_display_offset(gsGlobal, iXOffset, iYOffset);

	render(gsGlobal);

#ifdef HIRES_MODE
	gsKit_hires_deinit_global(gsGlobal);
#else
	gsKit_deinit_global(gsGlobal);
#endif

	return 0;
}