static m64p_error plugin_start_gfx(void) { /* fill in the GFX_INFO data structure */ gfx_info.HEADER = (unsigned char *) g_rom; gfx_info.RDRAM = (unsigned char *) g_rdram; gfx_info.DMEM = (unsigned char *) g_dev.sp.mem; gfx_info.IMEM = (unsigned char *) g_dev.sp.mem + 0x1000; gfx_info.MI_INTR_REG = &(g_dev.r4300.mi.regs[MI_INTR_REG]); gfx_info.DPC_START_REG = &(g_dev.dp.dpc_regs[DPC_START_REG]); gfx_info.DPC_END_REG = &(g_dev.dp.dpc_regs[DPC_END_REG]); gfx_info.DPC_CURRENT_REG = &(g_dev.dp.dpc_regs[DPC_CURRENT_REG]); gfx_info.DPC_STATUS_REG = &(g_dev.dp.dpc_regs[DPC_STATUS_REG]); gfx_info.DPC_CLOCK_REG = &(g_dev.dp.dpc_regs[DPC_CLOCK_REG]); gfx_info.DPC_BUFBUSY_REG = &(g_dev.dp.dpc_regs[DPC_BUFBUSY_REG]); gfx_info.DPC_PIPEBUSY_REG = &(g_dev.dp.dpc_regs[DPC_PIPEBUSY_REG]); gfx_info.DPC_TMEM_REG = &(g_dev.dp.dpc_regs[DPC_TMEM_REG]); gfx_info.VI_STATUS_REG = &(g_dev.vi.regs[VI_STATUS_REG]); gfx_info.VI_ORIGIN_REG = &(g_dev.vi.regs[VI_ORIGIN_REG]); gfx_info.VI_WIDTH_REG = &(g_dev.vi.regs[VI_WIDTH_REG]); gfx_info.VI_INTR_REG = &(g_dev.vi.regs[VI_V_INTR_REG]); gfx_info.VI_V_CURRENT_LINE_REG = &(g_dev.vi.regs[VI_CURRENT_REG]); gfx_info.VI_TIMING_REG = &(g_dev.vi.regs[VI_BURST_REG]); gfx_info.VI_V_SYNC_REG = &(g_dev.vi.regs[VI_V_SYNC_REG]); gfx_info.VI_H_SYNC_REG = &(g_dev.vi.regs[VI_H_SYNC_REG]); gfx_info.VI_LEAP_REG = &(g_dev.vi.regs[VI_LEAP_REG]); gfx_info.VI_H_START_REG = &(g_dev.vi.regs[VI_H_START_REG]); gfx_info.VI_V_START_REG = &(g_dev.vi.regs[VI_V_START_REG]); gfx_info.VI_V_BURST_REG = &(g_dev.vi.regs[VI_V_BURST_REG]); gfx_info.VI_X_SCALE_REG = &(g_dev.vi.regs[VI_X_SCALE_REG]); gfx_info.VI_Y_SCALE_REG = &(g_dev.vi.regs[VI_Y_SCALE_REG]); gfx_info.CheckInterrupts = EmptyFunc; /* call the audio plugin */ if (!gfx.initiateGFX(gfx_info)) { printf("plugin_start_gfx fail.\n"); return M64ERR_PLUGIN_FAIL; } printf("plugin_start_gfx success.\n"); return M64ERR_SUCCESS; }
static m64p_error plugin_start_gfx(void) { /* fill in the GFX_INFO data structure */ gfx_info.HEADER = (unsigned char *) rom; gfx_info.RDRAM = (unsigned char *) rdram; gfx_info.DMEM = (unsigned char *) SP_DMEM; gfx_info.IMEM = (unsigned char *) SP_IMEM; gfx_info.MI_INTR_REG = &(MI_register.mi_intr_reg); gfx_info.DPC_START_REG = &(dpc_register.dpc_start); gfx_info.DPC_END_REG = &(dpc_register.dpc_end); gfx_info.DPC_CURRENT_REG = &(dpc_register.dpc_current); gfx_info.DPC_STATUS_REG = &(dpc_register.dpc_status); gfx_info.DPC_CLOCK_REG = &(dpc_register.dpc_clock); gfx_info.DPC_BUFBUSY_REG = &(dpc_register.dpc_bufbusy); gfx_info.DPC_PIPEBUSY_REG = &(dpc_register.dpc_pipebusy); gfx_info.DPC_TMEM_REG = &(dpc_register.dpc_tmem); gfx_info.VI_STATUS_REG = &(vi_register.vi_status); gfx_info.VI_ORIGIN_REG = &(vi_register.vi_origin); gfx_info.VI_WIDTH_REG = &(vi_register.vi_width); gfx_info.VI_INTR_REG = &(vi_register.vi_v_intr); gfx_info.VI_V_CURRENT_LINE_REG = &(vi_register.vi_current); gfx_info.VI_TIMING_REG = &(vi_register.vi_burst); gfx_info.VI_V_SYNC_REG = &(vi_register.vi_v_sync); gfx_info.VI_H_SYNC_REG = &(vi_register.vi_h_sync); gfx_info.VI_LEAP_REG = &(vi_register.vi_leap); gfx_info.VI_H_START_REG = &(vi_register.vi_h_start); gfx_info.VI_V_START_REG = &(vi_register.vi_v_start); gfx_info.VI_V_BURST_REG = &(vi_register.vi_v_burst); gfx_info.VI_X_SCALE_REG = &(vi_register.vi_x_scale); gfx_info.VI_Y_SCALE_REG = &(vi_register.vi_y_scale); gfx_info.CheckInterrupts = EmptyFunc; /* call the audio plugin */ if (!gfx.initiateGFX(gfx_info)) return M64ERR_PLUGIN_FAIL; return M64ERR_SUCCESS; }