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()
|
void mips3_device::execute_run()
|
||||||
{
|
{
|
||||||
if (m_isdrc)
|
if (m_isdrc)
|
||||||
|
@ -300,6 +300,7 @@ public:
|
|||||||
void clear_fastram(UINT32 select_start);
|
void clear_fastram(UINT32 select_start);
|
||||||
void mips3drc_set_options(UINT32 options);
|
void mips3drc_set_options(UINT32 options);
|
||||||
void mips3drc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
|
void mips3drc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
|
||||||
|
void burn_cycles(INT32 cycles);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
@ -313,6 +314,7 @@ protected:
|
|||||||
virtual UINT32 execute_input_lines() const { return 6; }
|
virtual UINT32 execute_input_lines() const { return 6; }
|
||||||
virtual void execute_run();
|
virtual void execute_run();
|
||||||
virtual void execute_set_input(int inputnum, int state);
|
virtual void execute_set_input(int inputnum, int state);
|
||||||
|
virtual void execute_burn(INT32 cycles) { m_totalcycles += cycles; }
|
||||||
|
|
||||||
// device_memory_interface overrides
|
// 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; }
|
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 )
|
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)
|
if(offset > 0x1c/4)
|
||||||
{
|
{
|
||||||
logerror("ri_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
|
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
|
omv1000 // Tsukuda Original Othello Multivision FG-1000
|
||||||
omv2000 // Tsukuda Original Othello Multivision FG-2000
|
omv2000 // Tsukuda Original Othello Multivision FG-2000
|
||||||
|
|
||||||
gamegear // Sega GameGear
|
//gamegear // Sega GameGear
|
||||||
gamegeaj // Sega GameGear (Japan)
|
//gamegeaj // Sega GameGear (Japan)
|
||||||
sms // Sega Master System II (NTSC)
|
//sms // Sega Master System II (NTSC)
|
||||||
sms1 // Sega Master System I (NTSC)
|
//sms1 // Sega Master System I (NTSC)
|
||||||
sms1pal // Sega Master System I (PAL)
|
//sms1pal // Sega Master System I (PAL)
|
||||||
smspal // Sega Master System II (PAL)
|
//smspal // Sega Master System II (PAL)
|
||||||
smsj // Sega Master System (Japan) with FM Chip
|
//smsj // Sega Master System (Japan) with FM Chip
|
||||||
sg1000m3 // Sega SG-1000 Mark III (Japan)
|
//sg1000m3 // Sega SG-1000 Mark III (Japan)
|
||||||
sms1krfm // Samsung Gam*Boy I (Korea) with FM Chip
|
//sms1krfm // Samsung Gam*Boy I (Korea) with FM Chip
|
||||||
sms1kr // Samsung Gam*Boy I (Korea)
|
//sms1kr // Samsung Gam*Boy I (Korea)
|
||||||
smskr // Samsung Gam*Boy II (Korea)
|
//smskr // Samsung Gam*Boy II (Korea)
|
||||||
smssdisp // Sega Master System Store Display Unit
|
//smssdisp // Sega Master System Store Display Unit
|
||||||
|
|
||||||
megadrij // 1988 Sega Mega Drive (Japan)
|
megadrij // 1988 Sega Mega Drive (Japan)
|
||||||
genesis // 1989 Sega Genesis (USA)
|
genesis // 1989 Sega Genesis (USA)
|
||||||
@ -117,7 +117,7 @@ dceu // 1999 Sega Dreamcast (Europe)
|
|||||||
dcdev // 1998 Sega HKT-0120 Sega Dreamcast Development Box
|
dcdev // 1998 Sega HKT-0120 Sega Dreamcast Development Box
|
||||||
dcprt // 1998 Sega Katana Set 5 Prototype
|
dcprt // 1998 Sega Katana Set 5 Prototype
|
||||||
|
|
||||||
svmu // 1998 Sega Visual Memory Unit
|
//svmu // 1998 Sega Visual Memory Unit
|
||||||
|
|
||||||
// Sony
|
// Sony
|
||||||
psj // 1994 Sony PlayStation (Japan)
|
psj // 1994 Sony PlayStation (Japan)
|
||||||
@ -385,7 +385,7 @@ f1
|
|||||||
f1e
|
f1e
|
||||||
f2
|
f2
|
||||||
f10
|
f10
|
||||||
fp
|
//fp
|
||||||
|
|
||||||
// Cambridge Computers
|
// Cambridge Computers
|
||||||
z88 // Z88 (UK)
|
z88 // Z88 (UK)
|
||||||
@ -661,22 +661,22 @@ c64gs // Commodore 64 Games System
|
|||||||
c64dtv // Commodore 64 Direct-to-TV
|
c64dtv // Commodore 64 Direct-to-TV
|
||||||
clcd // Commodore LCD
|
clcd // Commodore LCD
|
||||||
|
|
||||||
b500 // Commodore B500
|
//b500 // Commodore B500
|
||||||
b128 // Commodore B128
|
//b128 // Commodore B128
|
||||||
b256 // Commodore B256
|
//b256 // Commodore B256
|
||||||
cbm610 // Commodore CBM 610
|
//cbm610 // Commodore CBM 610
|
||||||
cbm620 // Commodore CBM 620
|
//cbm620 // Commodore CBM 620
|
||||||
cbm620_hu // Commodore CBM 620 (Hungary)
|
//cbm620_hu // Commodore CBM 620 (Hungary)
|
||||||
b128hp // Commodore B128HP
|
//b128hp // Commodore B128HP
|
||||||
b256hp // Commodore B256HP
|
//b256hp // Commodore B256HP
|
||||||
bx256hp // Commodore BX256HP
|
//bx256hp // Commodore BX256HP
|
||||||
cbm710 // Commodore CBM 710
|
//cbm710 // Commodore CBM 710
|
||||||
cbm720 // Commodore CBM 720
|
//cbm720 // Commodore CBM 720
|
||||||
cbm720_de
|
//cbm720_de
|
||||||
cbm720_se // Commodore CBM 720 (Sweden / Finland)
|
//cbm720_se // Commodore CBM 720 (Sweden / Finland)
|
||||||
cbm730
|
//cbm730
|
||||||
p500 // Commodore P500 (proto, a.k.a. C128-40, PET-II)
|
//p500 // Commodore P500 (proto, a.k.a. C128-40, PET-II)
|
||||||
p500p
|
//p500p
|
||||||
|
|
||||||
c264
|
c264
|
||||||
plus4
|
plus4
|
||||||
@ -732,8 +732,8 @@ a4000tn
|
|||||||
c65 // 1991 C65 / C64DX (Prototype, NTSC)
|
c65 // 1991 C65 / C64DX (Prototype, NTSC)
|
||||||
c64dx // 1991 C65 / C64DX (Prototype, German PAL)
|
c64dx // 1991 C65 / C64DX (Prototype, German PAL)
|
||||||
|
|
||||||
mps1000 // 1986 Commodore MPS-1000 (dot matrix printer)
|
//mps1000 // 1986 Commodore MPS-1000 (dot matrix printer)
|
||||||
mps1230 // 1988 Commodore MPS-1230 near-letter-quality dot matrix printer
|
//mps1230 // 1988 Commodore MPS-1230 near-letter-quality dot matrix printer
|
||||||
|
|
||||||
// Epson
|
// Epson
|
||||||
px4 // 1985 Epson PX-4
|
px4 // 1985 Epson PX-4
|
||||||
@ -1785,8 +1785,8 @@ abc806
|
|||||||
abc1600
|
abc1600
|
||||||
|
|
||||||
// Be Incorporated
|
// Be Incorporated
|
||||||
bebox // BeBox Dual603-66
|
//bebox // BeBox Dual603-66
|
||||||
bebox2 // BeBox Dual603-133
|
//bebox2 // BeBox Dual603-133
|
||||||
|
|
||||||
// Tiger Electronics
|
// Tiger Electronics
|
||||||
gamecom // Tiger Game.com
|
gamecom // Tiger Game.com
|
||||||
@ -1866,8 +1866,8 @@ bk0010fd
|
|||||||
bk0011m
|
bk0011m
|
||||||
|
|
||||||
// Bashkiria-2M
|
// Bashkiria-2M
|
||||||
b2m
|
//b2m
|
||||||
b2mrom
|
//b2mrom
|
||||||
|
|
||||||
// Radio-86RK
|
// Radio-86RK
|
||||||
radio86
|
radio86
|
||||||
@ -1897,10 +1897,10 @@ braiplus
|
|||||||
irisha
|
irisha
|
||||||
|
|
||||||
// PK-8020
|
// PK-8020
|
||||||
korvet
|
//korvet
|
||||||
kontur
|
//kontur
|
||||||
neiva
|
//neiva
|
||||||
bk8t
|
//bk8t
|
||||||
|
|
||||||
// Vector-06c
|
// Vector-06c
|
||||||
vector06
|
vector06
|
||||||
@ -2522,7 +2522,7 @@ uvc
|
|||||||
bridgec3
|
bridgec3
|
||||||
vbrc
|
vbrc
|
||||||
vsc
|
vsc
|
||||||
victor9k
|
//victor9k
|
||||||
phc25
|
phc25
|
||||||
phc25j
|
phc25j
|
||||||
pv9234
|
pv9234
|
||||||
|
Loading…
Reference in New Issue
Block a user