int InitGraphics(void) { unsigned int FrameBufferVRAMAddress; GsResetGraph(GS_INIT_RESET, GS_INTERLACED, GS_MODE_NTSC, GS_FFMD_FIELD); FrameBufferVRAMAddress=GsVramAllocFrameBuffer(SCREEN_WIDTH, SCREEN_HEIGHT, GS_PIXMODE_32); GsSetDefaultDrawEnv(&draw_env, GS_PIXMODE_32, SCREEN_WIDTH, SCREEN_HEIGHT); //Retrieve screen offset parameters. ScreenOffsetX=draw_env.offset_x; ScreenOffsetY=draw_env.offset_y; GsSetDefaultDrawEnvAddress(&draw_env, FrameBufferVRAMAddress); GsSetDefaultDisplayEnv(&disp_env, GS_PIXMODE_32, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0); GsSetDefaultDisplayEnvAddress(&disp_env, FrameBufferVRAMAddress); //execute draw/display environment(s) (context 1) GsPutDrawEnv1(&draw_env); GsPutDisplayEnv1(&disp_env); //set common primitive-drawing settings (Refer to documentation on PRMODE and PRMODECONT registers). GsOverridePrimAttributes(GS_DISABLE, 0, 0, 0, 0, 0, 0, 0, 0); //set transparency settings for context 1 (Refer to documentation on TEST and TEXA registers). GsEnableAlphaTransparency1(GS_ENABLE, GS_ALPHA_GEQUAL, 0x01, 0x00); GsEnableAlphaBlending1(GS_ENABLE, 0); //set transparency settings for context 2 (Refer to documentation on TEST and TEXA registers). GsEnableAlphaTransparency2(GS_ENABLE, GS_ALPHA_GEQUAL, 0x01, 0x00); GsEnableAlphaBlending2(GS_ENABLE, 0); return 0; }
int InitGraphics() { static int env0_address; static int env1_address; GsInit(); GsSetVideoMode(1, 2, 0); GsSetCRTCSettings(CRTC_SETTINGS_DEFAULT1, 255); //display contex 1 //alloc 2 buffers in vram env0_address = GsVramAllocFrameBuffer(SCREEN_WIDTH, SCREEN_HEIGHT, GS_PIXMODE_32); env1_address = GsVramAllocFrameBuffer(SCREEN_WIDTH, SCREEN_HEIGHT, GS_PIXMODE_32); /*********SETUP CONTEX 1 ENVIRONMENT*************/ GsSetDefaultDrawEnv (&draw_env[0], SCREEN_OFFSET_X, SCREEN_OFFSET_Y, SCREEN_WIDTH, SCREEN_HEIGHT); GsSetDefaultDrawEnvAddress(&draw_env[0], env0_address, SCREEN_WIDTH/64, GS_PIXMODE_32); GsSetDefaultDisplayEnv (&disp_env[0], 656, 36+(36/2), SCREEN_WIDTH, SCREEN_HEIGHT); GsSetDefaultDisplayEnvAddress(&disp_env[0], env1_address, SCREEN_WIDTH/64, GS_PIXMODE_32); /*********SETUP CONTEX 2 ENVIRONMENT*************/ GsSetDefaultDrawEnv (&draw_env[1], SCREEN_OFFSET_X, SCREEN_OFFSET_Y, SCREEN_WIDTH, SCREEN_HEIGHT); GsSetDefaultDrawEnvAddress(&draw_env[1], env1_address, SCREEN_WIDTH/64, GS_PIXMODE_32); GsSetDefaultDisplayEnv (&disp_env[1], 656, 36+(36/2), SCREEN_WIDTH, SCREEN_HEIGHT); GsSetDefaultDisplayEnvAddress(&disp_env[1], env0_address, SCREEN_WIDTH/64, GS_PIXMODE_32); //execute draw/display environment(s) (contex 1) GsPutDrawEnv1 (&draw_env[0]); GsPutDisplayEnv1(&disp_env[0]); //execute draw/display environment(s) (contex 2) GsPutDrawEnv2 (&draw_env[1]); GsPutDisplayEnv2(&disp_env[1]); //set some common stuff GsOverridePrimAttributes(GS_DISABLE, 0, 0, 0, 0, 0, 0, 0, 0); // contex 1 GsEnableAlphaTransparency1(GS_ENABLE, GS_ALPHA_GEQUAL, 0x01, 0x00); // contex 2 GsEnableAlphaTransparency2(GS_ENABLE, GS_ALPHA_GEQUAL, 0x01, 0x00); GsEnableAlphaBlending1(GS_ENABLE, 0); GsEnableAlphaBlending2(GS_ENABLE, 0); return 0; }