mirror of
https://github.com/holub/mame
synced 2025-06-19 10:46:35 +03:00
n64: Simulation of cpu cycles that would be used during the skipped RDRAM initialization. This allows the initialization of the SI to see a closer to expected system uptime when requested.
This commit is contained in:
parent
c7cf9ee627
commit
b9d235eaa7
@ -2701,6 +2701,11 @@ void mips3_device::handle_special(UINT32 op)
|
||||
}
|
||||
}
|
||||
|
||||
void mips3_device::burn_cycles(INT32 cycles)
|
||||
{
|
||||
execute_burn(cycles);
|
||||
}
|
||||
|
||||
void mips3_device::execute_run()
|
||||
{
|
||||
if (m_isdrc)
|
||||
|
@ -300,7 +300,8 @@ public:
|
||||
void clear_fastram(UINT32 select_start);
|
||||
void mips3drc_set_options(UINT32 options);
|
||||
void mips3drc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
|
||||
|
||||
void burn_cycles(INT32 cycles);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
@ -313,6 +314,7 @@ protected:
|
||||
virtual UINT32 execute_input_lines() const { return 6; }
|
||||
virtual void execute_run();
|
||||
virtual void execute_set_input(int inputnum, int state);
|
||||
virtual void execute_burn(INT32 cycles) { m_totalcycles += cycles; }
|
||||
|
||||
// device_memory_interface overrides
|
||||
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const { return (spacenum == AS_PROGRAM) ? &m_program_config : NULL; }
|
||||
|
@ -1667,6 +1667,20 @@ WRITE32_MEMBER( n64_periphs::pi_reg_w )
|
||||
|
||||
READ32_MEMBER( n64_periphs::ri_reg_r )
|
||||
{
|
||||
if(offset == 0x0C/4) // RI_SELECT
|
||||
{
|
||||
/* This is to 'simulate' the time that RDRAM initialization
|
||||
would take if the RI registers were not set to skip the RDRAM
|
||||
testing during device reset. Proper simulation would require
|
||||
emulating the RDRAM modules and bus stalls for the mips cpu.
|
||||
The cycle amount chosen represents 1/2 second, which is not
|
||||
necessarily the time for RDRAM initialization, but rather the
|
||||
time recommended for letting the SI devices settle after startup.
|
||||
This allows the initialization routines for the SI to see that a
|
||||
proper amount of time has passed since system startup. */
|
||||
machine().device<mips3_device>("maincpu")->burn_cycles(93750000/2);
|
||||
}
|
||||
|
||||
if(offset > 0x1c/4)
|
||||
{
|
||||
logerror("ri_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
|
||||
|
@ -61,18 +61,18 @@ sf7000 // Sega SC-3000 w/ SF-7000 (Japan)
|
||||
omv1000 // Tsukuda Original Othello Multivision FG-1000
|
||||
omv2000 // Tsukuda Original Othello Multivision FG-2000
|
||||
|
||||
gamegear // Sega GameGear
|
||||
gamegeaj // Sega GameGear (Japan)
|
||||
sms // Sega Master System II (NTSC)
|
||||
sms1 // Sega Master System I (NTSC)
|
||||
sms1pal // Sega Master System I (PAL)
|
||||
smspal // Sega Master System II (PAL)
|
||||
smsj // Sega Master System (Japan) with FM Chip
|
||||
sg1000m3 // Sega SG-1000 Mark III (Japan)
|
||||
sms1krfm // Samsung Gam*Boy I (Korea) with FM Chip
|
||||
sms1kr // Samsung Gam*Boy I (Korea)
|
||||
smskr // Samsung Gam*Boy II (Korea)
|
||||
smssdisp // Sega Master System Store Display Unit
|
||||
//gamegear // Sega GameGear
|
||||
//gamegeaj // Sega GameGear (Japan)
|
||||
//sms // Sega Master System II (NTSC)
|
||||
//sms1 // Sega Master System I (NTSC)
|
||||
//sms1pal // Sega Master System I (PAL)
|
||||
//smspal // Sega Master System II (PAL)
|
||||
//smsj // Sega Master System (Japan) with FM Chip
|
||||
//sg1000m3 // Sega SG-1000 Mark III (Japan)
|
||||
//sms1krfm // Samsung Gam*Boy I (Korea) with FM Chip
|
||||
//sms1kr // Samsung Gam*Boy I (Korea)
|
||||
//smskr // Samsung Gam*Boy II (Korea)
|
||||
//smssdisp // Sega Master System Store Display Unit
|
||||
|
||||
megadrij // 1988 Sega Mega Drive (Japan)
|
||||
genesis // 1989 Sega Genesis (USA)
|
||||
@ -117,7 +117,7 @@ dceu // 1999 Sega Dreamcast (Europe)
|
||||
dcdev // 1998 Sega HKT-0120 Sega Dreamcast Development Box
|
||||
dcprt // 1998 Sega Katana Set 5 Prototype
|
||||
|
||||
svmu // 1998 Sega Visual Memory Unit
|
||||
//svmu // 1998 Sega Visual Memory Unit
|
||||
|
||||
// Sony
|
||||
psj // 1994 Sony PlayStation (Japan)
|
||||
@ -385,7 +385,7 @@ f1
|
||||
f1e
|
||||
f2
|
||||
f10
|
||||
fp
|
||||
//fp
|
||||
|
||||
// Cambridge Computers
|
||||
z88 // Z88 (UK)
|
||||
@ -661,22 +661,22 @@ c64gs // Commodore 64 Games System
|
||||
c64dtv // Commodore 64 Direct-to-TV
|
||||
clcd // Commodore LCD
|
||||
|
||||
b500 // Commodore B500
|
||||
b128 // Commodore B128
|
||||
b256 // Commodore B256
|
||||
cbm610 // Commodore CBM 610
|
||||
cbm620 // Commodore CBM 620
|
||||
cbm620_hu // Commodore CBM 620 (Hungary)
|
||||
b128hp // Commodore B128HP
|
||||
b256hp // Commodore B256HP
|
||||
bx256hp // Commodore BX256HP
|
||||
cbm710 // Commodore CBM 710
|
||||
cbm720 // Commodore CBM 720
|
||||
cbm720_de
|
||||
cbm720_se // Commodore CBM 720 (Sweden / Finland)
|
||||
cbm730
|
||||
p500 // Commodore P500 (proto, a.k.a. C128-40, PET-II)
|
||||
p500p
|
||||
//b500 // Commodore B500
|
||||
//b128 // Commodore B128
|
||||
//b256 // Commodore B256
|
||||
//cbm610 // Commodore CBM 610
|
||||
//cbm620 // Commodore CBM 620
|
||||
//cbm620_hu // Commodore CBM 620 (Hungary)
|
||||
//b128hp // Commodore B128HP
|
||||
//b256hp // Commodore B256HP
|
||||
//bx256hp // Commodore BX256HP
|
||||
//cbm710 // Commodore CBM 710
|
||||
//cbm720 // Commodore CBM 720
|
||||
//cbm720_de
|
||||
//cbm720_se // Commodore CBM 720 (Sweden / Finland)
|
||||
//cbm730
|
||||
//p500 // Commodore P500 (proto, a.k.a. C128-40, PET-II)
|
||||
//p500p
|
||||
|
||||
c264
|
||||
plus4
|
||||
@ -732,8 +732,8 @@ a4000tn
|
||||
c65 // 1991 C65 / C64DX (Prototype, NTSC)
|
||||
c64dx // 1991 C65 / C64DX (Prototype, German PAL)
|
||||
|
||||
mps1000 // 1986 Commodore MPS-1000 (dot matrix printer)
|
||||
mps1230 // 1988 Commodore MPS-1230 near-letter-quality dot matrix printer
|
||||
//mps1000 // 1986 Commodore MPS-1000 (dot matrix printer)
|
||||
//mps1230 // 1988 Commodore MPS-1230 near-letter-quality dot matrix printer
|
||||
|
||||
// Epson
|
||||
px4 // 1985 Epson PX-4
|
||||
@ -1785,8 +1785,8 @@ abc806
|
||||
abc1600
|
||||
|
||||
// Be Incorporated
|
||||
bebox // BeBox Dual603-66
|
||||
bebox2 // BeBox Dual603-133
|
||||
//bebox // BeBox Dual603-66
|
||||
//bebox2 // BeBox Dual603-133
|
||||
|
||||
// Tiger Electronics
|
||||
gamecom // Tiger Game.com
|
||||
@ -1866,8 +1866,8 @@ bk0010fd
|
||||
bk0011m
|
||||
|
||||
// Bashkiria-2M
|
||||
b2m
|
||||
b2mrom
|
||||
//b2m
|
||||
//b2mrom
|
||||
|
||||
// Radio-86RK
|
||||
radio86
|
||||
@ -1897,10 +1897,10 @@ braiplus
|
||||
irisha
|
||||
|
||||
// PK-8020
|
||||
korvet
|
||||
kontur
|
||||
neiva
|
||||
bk8t
|
||||
//korvet
|
||||
//kontur
|
||||
//neiva
|
||||
//bk8t
|
||||
|
||||
// Vector-06c
|
||||
vector06
|
||||
@ -2522,7 +2522,7 @@ uvc
|
||||
bridgec3
|
||||
vbrc
|
||||
vsc
|
||||
victor9k
|
||||
//victor9k
|
||||
phc25
|
||||
phc25j
|
||||
pv9234
|
||||
|
Loading…
Reference in New Issue
Block a user