void init_custom_screen() { if (Settings.display == 0) { gsGlobal->Mode = GS_MODE_NTSC; gsGlobal->Interlace = GS_INTERLACED; gsGlobal->Field = GS_FIELD; gsGlobal->Width = 640; gsGlobal->Height = 448; VCK = 4; } else if (Settings.display == 1) { gsGlobal->Mode = GS_MODE_PAL; gsGlobal->Interlace = GS_INTERLACED; gsGlobal->Field = GS_FIELD; gsGlobal->Width = 640; gsGlobal->Height = 512; VCK = 4; } else if (Settings.display == 2) { gsGlobal->Mode = GS_MODE_DTV_480P; gsGlobal->Interlace = GS_NONINTERLACED; gsGlobal->Field = GS_FRAME; gsGlobal->Width = 640; gsGlobal->Height = 480; VCK = 2; } if (Settings.display == 0 || Settings.display == 1) { if (!Settings.interlace) { gsGlobal->Interlace = GS_NONINTERLACED; gsGlobal->Height = gsGlobal->Height / 2; VCK = 2; } } gsKit_vram_clear(gsGlobal); gsKit_init_screen(gsGlobal); /* Apply settings. */ gsKit_set_display_offset(gsGlobal, Settings.offset_x * VCK, Settings.offset_y); gsKit_mode_switch(gsGlobal, GS_ONESHOT); }
void SetDisplayOffset() { gsKit_set_display_offset(gsGlobal, Settings.offset_x * VCK, Settings.offset_y); }
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; }