(MESS) fp6000 : fixed random crash after 11th star (nw)

This commit is contained in:
Robbbert 2013-12-26 01:14:41 +00:00
parent ebc0f8e646
commit 960ff289ad

View File

@ -30,15 +30,15 @@ public:
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_gvram(*this, "gvram"), m_gvram(*this, "gvram"),
m_vram(*this, "vram"), m_vram(*this, "vram"),
m_maincpu(*this, "maincpu") { } m_maincpu(*this, "maincpu")
, m_crtc(*this, "crtc")
{ }
UINT8 *m_char_rom; UINT8 *m_char_rom;
required_shared_ptr<UINT16> m_gvram; required_shared_ptr<UINT16> m_gvram;
required_shared_ptr<UINT16> m_vram; required_shared_ptr<UINT16> m_vram;
UINT8 m_crtc_vreg[0x100],m_crtc_index; UINT8 m_crtc_vreg[0x100],m_crtc_index;
mc6845_device *m_mc6845;
struct { struct {
UINT16 cmd; UINT16 cmd;
}m_key; }m_key;
@ -56,6 +56,7 @@ public:
virtual void video_start(); virtual void video_start();
UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<mc6845_device>m_crtc;
}; };
void fp6000_state::video_start() void fp6000_state::video_start()
@ -158,13 +159,13 @@ WRITE8_MEMBER(fp6000_state::fp6000_pcg_w)
WRITE8_MEMBER(fp6000_state::fp6000_6845_address_w) WRITE8_MEMBER(fp6000_state::fp6000_6845_address_w)
{ {
m_crtc_index = data; m_crtc_index = data;
m_mc6845->address_w(space, offset, data); m_crtc->address_w(space, offset, data);
} }
WRITE8_MEMBER(fp6000_state::fp6000_6845_data_w) WRITE8_MEMBER(fp6000_state::fp6000_6845_data_w)
{ {
m_crtc_vreg[m_crtc_index] = data; m_crtc_vreg[m_crtc_index] = data;
m_mc6845->register_w(space, offset, data); m_crtc->register_w(space, offset, data);
} }
static ADDRESS_MAP_START(fp6000_map, AS_PROGRAM, 16, fp6000_state ) static ADDRESS_MAP_START(fp6000_map, AS_PROGRAM, 16, fp6000_state )
@ -277,7 +278,6 @@ GFXDECODE_END
void fp6000_state::machine_start() void fp6000_state::machine_start()
{ {
m_char_rom = memregion("pcg")->base(); m_char_rom = memregion("pcg")->base();
m_mc6845 = machine().device<mc6845_device>("crtc");
} }
void fp6000_state::machine_reset() void fp6000_state::machine_reset()