static m64p_error plugin_start_rsp(void) { /* fill in the RSP_INFO data structure */ rsp_info.RDRAM = (unsigned char *) rdram; rsp_info.DMEM = (unsigned char *) SP_DMEM; rsp_info.IMEM = (unsigned char *) SP_IMEM; rsp_info.MI_INTR_REG = &MI_register.mi_intr_reg; rsp_info.SP_MEM_ADDR_REG = &sp_register.sp_mem_addr_reg; rsp_info.SP_DRAM_ADDR_REG = &sp_register.sp_dram_addr_reg; rsp_info.SP_RD_LEN_REG = &sp_register.sp_rd_len_reg; rsp_info.SP_WR_LEN_REG = &sp_register.sp_wr_len_reg; rsp_info.SP_STATUS_REG = &sp_register.sp_status_reg; rsp_info.SP_DMA_FULL_REG = &sp_register.sp_dma_full_reg; rsp_info.SP_DMA_BUSY_REG = &sp_register.sp_dma_busy_reg; rsp_info.SP_PC_REG = &rsp_register.rsp_pc; rsp_info.SP_SEMAPHORE_REG = &sp_register.sp_semaphore_reg; rsp_info.DPC_START_REG = &dpc_register.dpc_start; rsp_info.DPC_END_REG = &dpc_register.dpc_end; rsp_info.DPC_CURRENT_REG = &dpc_register.dpc_current; rsp_info.DPC_STATUS_REG = &dpc_register.dpc_status; rsp_info.DPC_CLOCK_REG = &dpc_register.dpc_clock; rsp_info.DPC_BUFBUSY_REG = &dpc_register.dpc_bufbusy; rsp_info.DPC_PIPEBUSY_REG = &dpc_register.dpc_pipebusy; rsp_info.DPC_TMEM_REG = &dpc_register.dpc_tmem; rsp_info.CheckInterrupts = EmptyFunc; rsp_info.ProcessDlistList = gfx.processDList; rsp_info.ProcessAlistList = audio.processAList; rsp_info.ProcessRdpList = gfx.processRDPList; rsp_info.ShowCFB = gfx.showCFB; /* call the RSP plugin */ rsp.initiateRSP(rsp_info, NULL); return M64ERR_SUCCESS; }
static m64p_error plugin_start_rsp(void) { /* fill in the RSP_INFO data structure */ rsp_info.RDRAM = (unsigned char *) g_rdram; rsp_info.DMEM = (unsigned char *) g_dev.sp.mem; rsp_info.IMEM = (unsigned char *) g_dev.sp.mem + 0x1000; rsp_info.MI_INTR_REG = &g_dev.r4300.mi.regs[MI_INTR_REG]; rsp_info.SP_MEM_ADDR_REG = &g_dev.sp.regs[SP_MEM_ADDR_REG]; rsp_info.SP_DRAM_ADDR_REG = &g_dev.sp.regs[SP_DRAM_ADDR_REG]; rsp_info.SP_RD_LEN_REG = &g_dev.sp.regs[SP_RD_LEN_REG]; rsp_info.SP_WR_LEN_REG = &g_dev.sp.regs[SP_WR_LEN_REG]; rsp_info.SP_STATUS_REG = &g_dev.sp.regs[SP_STATUS_REG]; rsp_info.SP_DMA_FULL_REG = &g_dev.sp.regs[SP_DMA_FULL_REG]; rsp_info.SP_DMA_BUSY_REG = &g_dev.sp.regs[SP_DMA_BUSY_REG]; rsp_info.SP_PC_REG = &g_dev.sp.regs2[SP_PC_REG]; rsp_info.SP_SEMAPHORE_REG = &g_dev.sp.regs[SP_SEMAPHORE_REG]; rsp_info.DPC_START_REG = &g_dev.dp.dpc_regs[DPC_START_REG]; rsp_info.DPC_END_REG = &g_dev.dp.dpc_regs[DPC_END_REG]; rsp_info.DPC_CURRENT_REG = &g_dev.dp.dpc_regs[DPC_CURRENT_REG]; rsp_info.DPC_STATUS_REG = &g_dev.dp.dpc_regs[DPC_STATUS_REG]; rsp_info.DPC_CLOCK_REG = &g_dev.dp.dpc_regs[DPC_CLOCK_REG]; rsp_info.DPC_BUFBUSY_REG = &g_dev.dp.dpc_regs[DPC_BUFBUSY_REG]; rsp_info.DPC_PIPEBUSY_REG = &g_dev.dp.dpc_regs[DPC_PIPEBUSY_REG]; rsp_info.DPC_TMEM_REG = &g_dev.dp.dpc_regs[DPC_TMEM_REG]; rsp_info.CheckInterrupts = EmptyFunc; rsp_info.ProcessDlistList = gfx.processDList; rsp_info.ProcessAlistList = NULL; rsp_info.ProcessRdpList = gfx.processRDPList; rsp_info.ShowCFB = gfx.showCFB; /* call the RSP plugin */ rsp.initiateRSP(rsp_info, NULL); return M64ERR_SUCCESS; }