Previous 199869 Revisions Next

r31030 Wednesday 18th June, 2014 at 21:17:35 UTC by Wilbert Pol
(MESS) msx.c: Internal ym2413s don't need the unlock sequence. (nw)
[src/emu/bus/msx_slot]music.c music.h

trunk/src/emu/bus/msx_slot/music.c
r31029r31030
99   : msx_slot_rom_device(mconfig, MSX_SLOT_MUSIC, "MSX Internal MSX-MUSIC", tag, owner, clock, "msx_slot_music", __FILE__)
1010   , m_ym2413(NULL)
1111   , m_ym2413_tag(NULL)
12   , m_opll_active(false)
13   , m_unlock(0)
1412{
1513}
1614
r31029r31030
3735}
3836
3937
40void msx_slot_music_device::device_reset()
41{
42   m_opll_active = false;
43}
44
45
4638READ8_MEMBER(msx_slot_music_device::read)
4739{
4840   return msx_slot_rom_device::read(space, offset);
4941}
5042
5143
52WRITE8_MEMBER(msx_slot_music_device::write)
53{
54   if (m_unlock == 0xbe && data == 0x41)
55   {
56      m_opll_active = true;
57   }
58   m_unlock = data;
59}
60
61
6244WRITE8_MEMBER(msx_slot_music_device::write_ym2413)
6345{
64   if (m_opll_active)
65   {
66      m_ym2413->write(space, offset & 1, data);
67   }
46   m_ym2413->write(space, offset & 1, data);
6847}
6948
trunk/src/emu/bus/msx_slot/music.h
r31029r31030
2424   static void set_ym2413_tag(device_t &device, const char *tag) { dynamic_cast<msx_slot_music_device &>(device).m_ym2413_tag = tag; }
2525
2626   virtual void device_start();
27   virtual void device_reset();
2827
2928   virtual DECLARE_READ8_MEMBER(read);
30   virtual DECLARE_WRITE8_MEMBER(write);
3129
3230   DECLARE_WRITE8_MEMBER(write_ym2413);
3331
3432private:
3533   ym2413_device *m_ym2413;
3634   const char *m_ym2413_tag;
37   bool m_opll_active;
38   UINT8 m_unlock;
3935};
4036
4137

Previous 199869 Revisions Next


© 1997-2024 The MAME Team