mirror of
https://github.com/simple64/simple64.git
synced 2026-07-11 01:24:00 +02:00
update core
This commit is contained in:
@@ -76,7 +76,6 @@ add_library(mupen64plus SHARED
|
||||
src/device/rcp/ai/ai_controller.c
|
||||
src/device/rcp/mi/mi_controller.c
|
||||
src/device/rcp/pi/pi_controller.c
|
||||
src/device/rcp/rdp/fb.c
|
||||
src/device/rcp/rdp/rdp_core.c
|
||||
src/device/rcp/ri/ri_controller.c
|
||||
src/device/rcp/rsp/rsp_core.c
|
||||
|
||||
@@ -105,8 +105,6 @@ static void dma_pi_read(struct pi_controller* pi)
|
||||
return;
|
||||
}
|
||||
|
||||
pre_framebuffer_read(&pi->dp->fb, dram_addr);
|
||||
|
||||
/* PI seems to treat the first 128 bytes differently, see https://n64brew.dev/wiki/Peripheral_Interface#Unaligned_DMA_transfer */
|
||||
if (length >= 0x7f && (length & 1))
|
||||
length += 1;
|
||||
@@ -149,8 +147,6 @@ static void dma_pi_write(struct pi_controller* pi)
|
||||
length -= dram_addr & 0x7;
|
||||
uint32_t cycles = handler->dma_write(opaque, dram, dram_addr, cart_addr, length);
|
||||
|
||||
post_framebuffer_write(&pi->dp->fb, dram_addr, length);
|
||||
|
||||
/* Mark DMA as busy */
|
||||
pi->regs[PI_STATUS_REG] |= PI_STATUS_DMA_BUSY;
|
||||
/* Update PI_DRAM_ADDR_REG and PI_CART_ADDR_REG */
|
||||
|
||||
@@ -88,8 +88,6 @@ void init_rdp(struct rdp_core* dp,
|
||||
{
|
||||
dp->sp = sp;
|
||||
dp->mi = mi;
|
||||
|
||||
init_fb(&dp->fb, mem, rdram, r4300);
|
||||
}
|
||||
|
||||
void poweron_rdp(struct rdp_core* dp)
|
||||
@@ -100,8 +98,6 @@ void poweron_rdp(struct rdp_core* dp)
|
||||
|
||||
dp->do_on_unfreeze = 0;
|
||||
dp->mi->r4300->cp0.interrupt_unsafe_state &= ~INTR_UNSAFE_RDP;
|
||||
|
||||
poweron_fb(&dp->fb);
|
||||
}
|
||||
|
||||
|
||||
@@ -146,9 +142,7 @@ void write_dpc_regs(void* opaque, uint32_t address, uint32_t value, uint32_t mas
|
||||
dp->dpc_regs[DPC_CURRENT_REG] = dp->dpc_regs[DPC_START_REG];
|
||||
dp->dpc_regs[DPC_STATUS_REG] &= ~DPC_STATUS_START_VALID;
|
||||
}
|
||||
unprotect_framebuffers(&dp->fb);
|
||||
gfx.processRDPList();
|
||||
protect_framebuffers(&dp->fb);
|
||||
if (dp->mi->regs[MI_INTR_REG] & MI_INTR_DP)
|
||||
{
|
||||
dp->mi->regs[MI_INTR_REG] &= ~MI_INTR_DP;
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "fb.h"
|
||||
#include "osal/preproc.h"
|
||||
|
||||
struct mi_controller;
|
||||
struct rsp_core;
|
||||
struct memory;
|
||||
struct rdram;
|
||||
struct r4300_core;
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -91,8 +93,6 @@ struct rdp_core
|
||||
uint32_t dps_regs[DPS_REGS_COUNT];
|
||||
unsigned char do_on_unfreeze;
|
||||
|
||||
struct fb fb;
|
||||
|
||||
struct rsp_core* sp;
|
||||
struct mi_controller* mi;
|
||||
};
|
||||
|
||||
@@ -61,8 +61,6 @@ static void do_sp_dma(struct rsp_core* sp, const struct sp_dma* dma)
|
||||
memaddr++;
|
||||
dramaddr++;
|
||||
}
|
||||
if (dramaddr <= 0x800000)
|
||||
post_framebuffer_write(&sp->dp->fb, dramaddr - length, length);
|
||||
dramaddr+=skip;
|
||||
}
|
||||
|
||||
@@ -73,9 +71,6 @@ static void do_sp_dma(struct rsp_core* sp, const struct sp_dma* dma)
|
||||
else
|
||||
{
|
||||
for(j=0; j<count; j++) {
|
||||
if (dramaddr < 0x800000)
|
||||
pre_framebuffer_read(&sp->dp->fb, dramaddr);
|
||||
|
||||
for(i=0; i<length; i++) {
|
||||
spmem[(memaddr & 0xfff)^S8] = dram[dramaddr^S8];
|
||||
memaddr++;
|
||||
@@ -361,9 +356,7 @@ void do_SP_Task(struct rsp_core* sp)
|
||||
uint32_t sp_bit_set = sp->mi->regs[MI_INTR_REG] & MI_INTR_SP;
|
||||
uint32_t dp_bit_set = sp->mi->regs[MI_INTR_REG] & MI_INTR_DP;
|
||||
|
||||
unprotect_framebuffers(&sp->dp->fb);
|
||||
uint32_t rsp_cycles = rsp.doRspCycles(sp->first_run) / 2;
|
||||
protect_framebuffers(&sp->dp->fb);
|
||||
|
||||
if (sp->mi->regs[MI_INTR_REG] & MI_INTR_DP && !dp_bit_set)
|
||||
{
|
||||
|
||||
@@ -986,9 +986,6 @@ static int savestates_load_m64p(struct device* dev, char *filepath)
|
||||
input.controllerCommand(-1, NULL);
|
||||
}
|
||||
|
||||
/* reset fb state */
|
||||
poweron_fb(&dev->dp.fb);
|
||||
|
||||
dev->r4300.cp0.interrupt_unsafe_state = 0;
|
||||
|
||||
*r4300_cp0_last_addr(&dev->r4300.cp0) = *r4300_pc(&dev->r4300);
|
||||
|
||||
Reference in New Issue
Block a user