@@ -18,9 +18,8 @@ of the "Ultra 64" arcade games.
1818- The SRAM test fails in diagnostics; this is due to the fact that the test
1919 relies on executing out of the cache while it tromps over (and eventually
2020 restores) the instructions it is executing; this will likely never be fixed.
21- - Bootup sequence (the blue color fill) is too fast, which in turn causes
22- attract mode music not to play. Maybe the main CPU is running at a lower
23- clockspeed at boot (50MHz/4 seems plausible), but then, what toggles it?
21+ - Verify waitstates on memory access, currently it's only added for EPROMs
22+ during the blue screen boot up sequence.
2423
2524****************************************************************************
2625
@@ -244,6 +243,7 @@ class kinst_state : public driver_device
244243 uint32_t screen_update (screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
245244 uint32_t ide_extra_r ();
246245 void ide_extra_w (uint32_t data);
246+ uint32_t rom_r (offs_t offset);
247247
248248 void vram_control_w (offs_t offset, uint32_t data, uint32_t mem_mask);
249249 void sound_reset_w (offs_t offset, uint32_t data, uint32_t mem_mask);
@@ -300,7 +300,6 @@ void kinst_state::machine_start()
300300 // configure fast RAM regions
301301 m_maincpu->add_fastram (0x08000000 , 0x087fffff , false , m_rambase2);
302302 m_maincpu->add_fastram (0x00000000 , 0x0007ffff , false , m_rambase);
303- m_maincpu->add_fastram (0x1fc00000 , 0x1fc7ffff , true , m_rombase);
304303
305304 // register for savestates
306305 save_item (NAME (m_vram_control));
@@ -502,6 +501,16 @@ void kinst_state::coin_control_w(offs_t offset, uint32_t data, uint32_t mem_mask
502501}
503502
504503
504+ uint32_t kinst_state::rom_r (offs_t offset)
505+ {
506+ // add RdRdy clocks on EPROM access
507+ // bootup sequence takes approx. 6 seconds, and it's not a CPU clock divider
508+ m_maincpu->adjust_icount (-128 );
509+
510+ return m_rombase[offset];
511+ }
512+
513+
505514
506515/* ************************************
507516 *
@@ -524,7 +533,7 @@ void kinst_state::kinst_map(address_map &map)
524533
525534 map (0x10000100 , 0x1000013f ).rw (FUNC (kinst_state::ide_r), FUNC (kinst_state::ide_w));
526535 map (0x10000170 , 0x10000173 ).rw (FUNC (kinst_state::ide_extra_r), FUNC (kinst_state::ide_extra_w));
527- map (0x1fc00000 , 0x1fc7ffff ).rom (). region ( " user1 " , 0 );
536+ map (0x1fc00000 , 0x1fc7ffff ).r ( FUNC (kinst_state::rom_r) );
528537}
529538
530539
0 commit comments