mirror of
https://github.com/libretro/mupen64plus-core.git
synced 2026-11-07 12:27:51 -10:00
Remove DelaySI hack/option
This commit is contained in:
1 parent
35929f06f7
commit
0bcfd3cc78
9 files changed
+22
-60
No files matched your search
@@ -8692,7 +8692,6 @@ GoodName=Mischief Makers (E) [!]
|
||||
CRC=418BDA98 248A0F58
|
||||
Players=1
|
||||
SaveType=Eeprom 4KB
|
||||
DelaySI=0
|
||||
|
||||
[5690D74157C6623E2928A6F0353EF4AF]
|
||||
GoodName=Mischief Makers (E) [b1]
|
||||
@@ -8704,7 +8703,6 @@ GoodName=Mischief Makers (U) [!]
|
||||
CRC=0B93051B 603D81F9
|
||||
Players=1
|
||||
SaveType=Eeprom 4KB
|
||||
DelaySI=0
|
||||
|
||||
[CCF012DF82022D4797CE4CC5405E084F]
|
||||
GoodName=Mischief Makers (U) [b1]
|
||||
@@ -15997,7 +15995,6 @@ GoodName=Yuke Yuke!! Trouble Makers (J) [!]
|
||||
CRC=9FE6162D E97E4037
|
||||
Players=1
|
||||
SaveType=Eeprom 4KB
|
||||
DelaySI=0
|
||||
|
||||
[6F9E56C8A2B6BA5F6DBE5214E352590D]
|
||||
GoodName=Yuke Yuke!! Trouble Makers (J) [a1]
|
||||
|
||||
+1
-3
@@ -53,7 +53,6 @@ void init_device(struct device* dev,
|
||||
struct gb_cart* gb_carts,
|
||||
uint16_t eeprom_id, struct storage_backend* eeprom_storage,
|
||||
struct clock_backend* clock,
|
||||
unsigned int delay_si,
|
||||
/* vi */
|
||||
unsigned int vi_clock, unsigned int expected_refresh_rate)
|
||||
{
|
||||
@@ -87,8 +86,7 @@ void init_device(struct device* dev,
|
||||
eeprom_id, eeprom_storage,
|
||||
clock,
|
||||
rom + 0x40,
|
||||
&dev->r4300, &dev->ri,
|
||||
delay_si);
|
||||
&dev->r4300, &dev->ri);
|
||||
init_vi(&dev->vi, vi_clock, expected_refresh_rate, &dev->r4300);
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,6 @@ void init_device(struct device* dev,
|
||||
struct gb_cart* gb_carts,
|
||||
uint16_t eeprom_id, struct storage_backend* eeprom_storage,
|
||||
struct clock_backend* clock,
|
||||
unsigned int delay_si,
|
||||
/* vi */
|
||||
unsigned int vi_clock, unsigned int expected_refresh_rate);
|
||||
|
||||
|
||||
@@ -142,8 +142,6 @@ int write_pif_ram(void* opaque, uint32_t address, uint32_t value, uint32_t mask)
|
||||
if (si->pif.ram[0x3f] == 0x08)
|
||||
{
|
||||
si->pif.ram[0x3f] = 0;
|
||||
cp0_update_count(si->r4300);
|
||||
add_interrupt_event(&si->r4300->cp0, SI_INT, /*0x100*/0x900);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -54,22 +54,13 @@ static void dma_si_write(struct si_controller* si)
|
||||
*((uint32_t*)(&si->pif.ram[i])) = sl(si->ri->rdram.dram[(si->regs[SI_DRAM_ADDR_REG]+i)/4]);
|
||||
}
|
||||
|
||||
update_pif_write(si);
|
||||
cp0_update_count(si->r4300);
|
||||
|
||||
if (si->delay_si) {
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_DMA_BUSY;
|
||||
add_interrupt_event(&si->r4300->cp0, SI_INT, /*0x100*/0x900);
|
||||
} else {
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_INTERRUPT;
|
||||
signal_rcp_interrupt(si->r4300, MI_INTR_SI);
|
||||
}
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_DMA_BUSY;
|
||||
add_interrupt_event(&si->r4300->cp0, SI_INT, /*0x100*/0x900);
|
||||
}
|
||||
|
||||
static void dma_si_read(struct si_controller* si)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (si->regs[SI_PIF_ADDR_RD64B_REG] != 0x1FC007C0)
|
||||
{
|
||||
DebugMessage(M64MSG_ERROR, "dma_si_read(): unknown SI use");
|
||||
@@ -78,20 +69,9 @@ static void dma_si_read(struct si_controller* si)
|
||||
|
||||
update_pif_read(si);
|
||||
|
||||
for (i = 0; i < PIF_RAM_SIZE; i += 4)
|
||||
{
|
||||
si->ri->rdram.dram[(si->regs[SI_DRAM_ADDR_REG]+i)/4] = sl(*(uint32_t*)(&si->pif.ram[i]));
|
||||
}
|
||||
|
||||
cp0_update_count(si->r4300);
|
||||
|
||||
if (si->delay_si) {
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_DMA_BUSY;
|
||||
add_interrupt_event(&si->r4300->cp0, SI_INT, /*0x100*/0x900);
|
||||
} else {
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_INTERRUPT;
|
||||
signal_rcp_interrupt(si->r4300, MI_INTR_SI);
|
||||
}
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_RD_BUSY;
|
||||
add_interrupt_event(&si->r4300->cp0, SI_INT, /*0x100*/0x900);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,12 +85,10 @@ void init_si(struct si_controller* si,
|
||||
struct clock_backend* clock,
|
||||
const uint8_t* ipl3,
|
||||
struct r4300_core* r4300,
|
||||
struct ri_controller* ri,
|
||||
unsigned int delay_si)
|
||||
struct ri_controller* ri)
|
||||
{
|
||||
si->r4300 = r4300;
|
||||
si->ri = ri;
|
||||
si->delay_si = delay_si;
|
||||
|
||||
init_pif(&si->pif,
|
||||
cins,
|
||||
@@ -173,12 +151,26 @@ int write_si_regs(void* opaque, uint32_t address, uint32_t value, uint32_t mask)
|
||||
void si_end_of_dma_event(void* opaque)
|
||||
{
|
||||
struct si_controller* si = (struct si_controller*)opaque;
|
||||
|
||||
if (si->regs[SI_STATUS_REG] & SI_STATUS_DMA_BUSY)
|
||||
{
|
||||
update_pif_write(si);
|
||||
}
|
||||
else if (si->regs[SI_STATUS_REG] & SI_STATUS_RD_BUSY)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < PIF_RAM_SIZE; i += 4)
|
||||
{
|
||||
si->ri->rdram.dram[(si->regs[SI_DRAM_ADDR_REG]+i)/4] = sl(*(uint32_t*)(&si->pif.ram[i]));
|
||||
}
|
||||
}
|
||||
|
||||
main_check_inputs();
|
||||
|
||||
si->pif.ram[0x3f] = 0x0;
|
||||
|
||||
/* trigger SI interrupt */
|
||||
si->regs[SI_STATUS_REG] &= ~SI_STATUS_DMA_BUSY;
|
||||
si->regs[SI_STATUS_REG] &= ~(SI_STATUS_DMA_BUSY | SI_STATUS_RD_BUSY);
|
||||
si->regs[SI_STATUS_REG] |= SI_STATUS_INTERRUPT;
|
||||
raise_rcp_interrupt(si->r4300, MI_INTR_SI);
|
||||
}
|
||||
|
||||
@@ -52,8 +52,6 @@ struct si_controller
|
||||
|
||||
struct r4300_core* r4300;
|
||||
struct ri_controller* ri;
|
||||
|
||||
unsigned int delay_si;
|
||||
};
|
||||
|
||||
static uint32_t si_reg(uint32_t address)
|
||||
@@ -72,8 +70,7 @@ void init_si(struct si_controller* si,
|
||||
struct clock_backend* clock,
|
||||
const uint8_t* ipl3,
|
||||
struct r4300_core* r4300,
|
||||
struct ri_controller* ri,
|
||||
unsigned int delay_si);
|
||||
struct ri_controller* ri);
|
||||
|
||||
void poweron_si(struct si_controller* si);
|
||||
|
||||
|
||||
@@ -271,7 +271,6 @@ int main_set_core_defaults(void)
|
||||
ConfigSetDefaultString(g_CoreConfig, "SaveStatePath", "", "Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserConfigPath}/save will be used");
|
||||
ConfigSetDefaultString(g_CoreConfig, "SaveSRAMPath", "", "Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserConfigPath}/save will be used");
|
||||
ConfigSetDefaultString(g_CoreConfig, "SharedDataPath", "", "Path to a directory to search when looking for shared data files");
|
||||
ConfigSetDefaultBool(g_CoreConfig, "DelaySI", 1, "Delay interrupt after DMA SI read/write");
|
||||
ConfigSetDefaultInt(g_CoreConfig, "CountPerOp", 0, "Force number of cycles per emulated instruction");
|
||||
ConfigSetDefaultBool(g_CoreConfig, "DisableSpecRecomp", 1, "Disable speculative precompilation in new dynarec");
|
||||
|
||||
@@ -961,7 +960,6 @@ m64p_error main_run(void)
|
||||
{
|
||||
size_t i;
|
||||
size_t rdram_size;
|
||||
unsigned int delay_si;
|
||||
unsigned int count_per_op;
|
||||
unsigned int emumode;
|
||||
unsigned int disable_extra_mem;
|
||||
@@ -993,10 +991,6 @@ m64p_error main_run(void)
|
||||
#ifdef NEW_DYNAREC
|
||||
stop_after_jal = ConfigGetParamBool(g_CoreConfig, "DisableSpecRecomp");
|
||||
#endif
|
||||
if (!ROM_PARAMS.delaysi)
|
||||
delay_si = ROM_PARAMS.delaysi;
|
||||
else
|
||||
delay_si = ConfigGetParamBool(g_CoreConfig, "DelaySI");
|
||||
|
||||
count_per_op = ConfigGetParamInt(g_CoreConfig, "CountPerOp");
|
||||
|
||||
@@ -1088,7 +1082,6 @@ m64p_error main_run(void)
|
||||
gb_carts,
|
||||
(ROM_SETTINGS.savetype != EEPROM_16KB) ? 0x8000 : 0xc000, &eep_storage,
|
||||
&clock,
|
||||
delay_si,
|
||||
vi_clock_from_tv_standard(ROM_PARAMS.systemtype), vi_expected_refresh_rate_from_tv_standard(ROM_PARAMS.systemtype));
|
||||
|
||||
// Attach rom to plugins
|
||||
|
||||
@@ -49,8 +49,6 @@
|
||||
enum { DEFAULT_COUNT_PER_OP = 2 };
|
||||
/* by default, extra mem is enabled */
|
||||
enum { DEFAULT_DISABLE_EXTRA_MEM = 0 };
|
||||
/* by default, Delay SI is enabled */
|
||||
enum { DEFAULT_DELAY_SI = 1 };
|
||||
|
||||
static romdatabase_entry* ini_search_by_md5(md5_byte_t* md5);
|
||||
|
||||
@@ -176,7 +174,6 @@ m64p_error open_rom(const unsigned char* romimage, unsigned int size)
|
||||
ROM_PARAMS.systemtype = rom_country_code_to_system_type(ROM_HEADER.Country_code);
|
||||
ROM_PARAMS.countperop = DEFAULT_COUNT_PER_OP;
|
||||
ROM_PARAMS.disableextramem = DEFAULT_DISABLE_EXTRA_MEM;
|
||||
ROM_PARAMS.delaysi = DEFAULT_DELAY_SI;
|
||||
ROM_PARAMS.cheats = NULL;
|
||||
|
||||
memcpy(ROM_PARAMS.headername, ROM_HEADER.Name, 20);
|
||||
@@ -195,7 +192,6 @@ m64p_error open_rom(const unsigned char* romimage, unsigned int size)
|
||||
ROM_SETTINGS.rumble = entry->rumble;
|
||||
ROM_PARAMS.countperop = entry->countperop;
|
||||
ROM_PARAMS.disableextramem = entry->disableextramem;
|
||||
ROM_PARAMS.delaysi = entry->delaysi;
|
||||
ROM_PARAMS.cheats = entry->cheats;
|
||||
}
|
||||
else
|
||||
@@ -208,7 +204,6 @@ m64p_error open_rom(const unsigned char* romimage, unsigned int size)
|
||||
ROM_SETTINGS.rumble = 0;
|
||||
ROM_PARAMS.countperop = DEFAULT_COUNT_PER_OP;
|
||||
ROM_PARAMS.disableextramem = DEFAULT_DISABLE_EXTRA_MEM;
|
||||
ROM_PARAMS.delaysi = DEFAULT_DELAY_SI;
|
||||
ROM_PARAMS.cheats = NULL;
|
||||
}
|
||||
|
||||
@@ -449,7 +444,6 @@ void romdatabase_open(void)
|
||||
search->entry.rumble = 0;
|
||||
search->entry.countperop = DEFAULT_COUNT_PER_OP;
|
||||
search->entry.disableextramem = DEFAULT_DISABLE_EXTRA_MEM;
|
||||
search->entry.delaysi = DEFAULT_DELAY_SI;
|
||||
search->entry.cheats = NULL;
|
||||
search->entry.set_flags = ROMDATABASE_ENTRY_NONE;
|
||||
|
||||
@@ -571,10 +565,6 @@ void romdatabase_open(void)
|
||||
{
|
||||
search->entry.disableextramem = atoi(l.value);
|
||||
}
|
||||
else if (!strcmp(l.name, "DelaySI"))
|
||||
{
|
||||
search->entry.delaysi = atoi(l.value);
|
||||
}
|
||||
else if(!strncmp(l.name, "Cheat", 5))
|
||||
{
|
||||
size_t len1 = 0, len2 = 0;
|
||||
|
||||
@@ -51,7 +51,6 @@ typedef struct _rom_params
|
||||
char headername[21]; /* ROM Name as in the header, removing trailing whitespace */
|
||||
unsigned char countperop;
|
||||
int disableextramem;
|
||||
int delaysi;
|
||||
int special_rom;
|
||||
} rom_params;
|
||||
|
||||
@@ -132,7 +131,6 @@ typedef struct
|
||||
unsigned char rumble; /* 0 - No, 1 - Yes boolean for rumble support. */
|
||||
unsigned char countperop;
|
||||
unsigned char disableextramem;
|
||||
unsigned char delaysi;
|
||||
uint32_t set_flags;
|
||||
} romdatabase_entry;
|
||||
|
||||
|
||||
Reference in new issue
Block a user