trunk/src/emu/sound/ymz280b.c
| r22777 | r22778 | |
| 648 | 648 | |
| 649 | 649 | void ymz280b_device::device_reset() |
| 650 | 650 | { |
| 651 | | int i; |
| 652 | | |
| 653 | 651 | /* initial clear registers */ |
| 654 | | for (i = 0xff; i >= 0; i--) |
| 652 | for (int i = 0xff; i >= 0; i--) |
| 655 | 653 | { |
| 656 | 654 | m_current_register = i; |
| 657 | 655 | write_to_register(0); |
| r22777 | r22778 | |
| 662 | 660 | m_rom_readback_addr = 0; |
| 663 | 661 | |
| 664 | 662 | /* clear other voice parameters */ |
| 665 | | for (i = 0; i < 8; i++) |
| 663 | for (int i = 0; i < 8; i++) |
| 666 | 664 | { |
| 667 | 665 | struct YMZ280BVoice *voice = &m_voice[i]; |
| 668 | 666 | |
| r22777 | r22778 | |
| 935 | 933 | ymz280b_device::ymz280b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 936 | 934 | : device_t(mconfig, YMZ280B, "YMZ280B", tag, owner, clock), |
| 937 | 935 | device_sound_interface(mconfig, *this), |
| 936 | m_current_register(0), |
| 937 | m_status_register(0), |
| 938 | m_irq_state(0), |
| 939 | m_irq_mask(0), |
| 940 | m_irq_enable(0), |
| 941 | m_keyon_enable(0), |
| 942 | m_ext_mem_enable(0), |
| 943 | m_rom_addr_hi(0), |
| 944 | m_rom_addr_mid(0), |
| 945 | m_rom_readback_addr(0), |
| 938 | 946 | m_irq_handler(*this), |
| 939 | 947 | m_ext_read_handler(*this), |
| 940 | 948 | m_ext_write_handler(*this) |
| 941 | 949 | { |
| 950 | memset(m_voice, 0, sizeof(m_voice)); |
| 942 | 951 | } |
| 943 | 952 | |
| 944 | 953 | //------------------------------------------------- |
trunk/src/emu/sound/ymz280b.h
| r22777 | r22778 | |
| 97 | 97 | int compute_status(); |
| 98 | 98 | |
| 99 | 99 | // internal state |
| 100 | | sound_stream * m_stream; /* which stream are we using */ |
| 101 | | UINT8 *m_region_base; /* pointer to the base of the region */ |
| 102 | | UINT32 m_region_size; |
| 100 | struct YMZ280BVoice m_voice[8]; /* the 8 voices */ |
| 103 | 101 | UINT8 m_current_register; /* currently accessible register */ |
| 104 | 102 | UINT8 m_status_register; /* current status register */ |
| 105 | 103 | UINT8 m_irq_state; /* current IRQ state */ |
| r22777 | r22778 | |
| 107 | 105 | UINT8 m_irq_enable; /* current IRQ enable */ |
| 108 | 106 | UINT8 m_keyon_enable; /* key on enable */ |
| 109 | 107 | UINT8 m_ext_mem_enable; /* external memory enable */ |
| 110 | | double m_master_clock; /* master clock frequency */ |
| 111 | | devcb2_write_line m_irq_handler; /* IRQ callback */ |
| 112 | | struct YMZ280BVoice m_voice[8]; /* the 8 voices */ |
| 113 | 108 | UINT32 m_rom_addr_hi; |
| 114 | 109 | UINT32 m_rom_addr_mid; |
| 115 | 110 | UINT32 m_rom_readback_addr; /* where the CPU can read the ROM */ |
| 111 | |
| 112 | devcb2_write_line m_irq_handler; /* IRQ callback */ |
| 116 | 113 | devcb2_read8 m_ext_read_handler; /* external RAM read handler */ |
| 117 | 114 | devcb2_write8 m_ext_write_handler;/* external RAM write handler */ |
| 118 | 115 | |
| 116 | double m_master_clock; /* master clock frequency */ |
| 117 | UINT8 *m_region_base; /* pointer to the base of the region */ |
| 118 | UINT32 m_region_size; |
| 119 | sound_stream *m_stream; /* which stream are we using */ |
| 120 | INT16 *m_scratch; |
| 119 | 121 | #if MAKE_WAVS |
| 120 | | void * m_wavresample; /* resampled waveform */ |
| 122 | void *m_wavresample; /* resampled waveform */ |
| 121 | 123 | #endif |
| 122 | | |
| 123 | | INT16 *m_scratch; |
| 124 | 124 | }; |
| 125 | 125 | |
| 126 | 126 | extern const device_type YMZ280B; |
trunk/src/emu/sound/ymf271.c
| r22777 | r22778 | |
| 1711 | 1711 | |
| 1712 | 1712 | void ymf271_device::device_reset() |
| 1713 | 1713 | { |
| 1714 | | int i; |
| 1715 | | |
| 1716 | | for (i = 0; i < 48; i++) |
| 1714 | for (int i = 0; i < 48; i++) |
| 1717 | 1715 | { |
| 1718 | 1716 | m_slots[i].active = 0; |
| 1719 | 1717 | m_slots[i].volume = 0; |
| r22777 | r22778 | |
| 1725 | 1723 | ymf271_device::ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1726 | 1724 | : device_t(mconfig, YMF271, "YMF271", tag, owner, clock), |
| 1727 | 1725 | device_sound_interface(mconfig, *this), |
| 1726 | m_timerA(0), |
| 1727 | m_timerB(0), |
| 1728 | m_timerAVal(0), |
| 1729 | m_timerBVal(0), |
| 1730 | m_irqstate(0), |
| 1731 | m_status(0), |
| 1732 | m_enable(0), |
| 1733 | m_reg0(0), |
| 1734 | m_reg1(0), |
| 1735 | m_reg2(0), |
| 1736 | m_reg3(0), |
| 1737 | m_pcmreg(0), |
| 1738 | m_timerreg(0), |
| 1739 | m_ext_address(0), |
| 1740 | m_ext_read(0), |
| 1728 | 1741 | m_irq_handler(*this), |
| 1729 | 1742 | m_ext_read_handler(*this), |
| 1730 | 1743 | m_ext_write_handler(*this) |
| 1731 | 1744 | { |
| 1745 | memset(m_slots, 0, sizeof(&m_slots)); |
| 1746 | memset(m_groups, 0, sizeof(&m_groups)); |
| 1732 | 1747 | } |
| 1733 | 1748 | |
| 1734 | 1749 | //------------------------------------------------- |
trunk/src/emu/sound/ymf271.h
| r22777 | r22778 | |
| 115 | 115 | YMF271Slot m_slots[48]; |
| 116 | 116 | YMF271Group m_groups[12]; |
| 117 | 117 | |
| 118 | | INT32 m_timerA, m_timerB; |
| 119 | | INT32 m_timerAVal, m_timerBVal; |
| 118 | INT32 m_timerA; |
| 119 | INT32 m_timerB; |
| 120 | INT32 m_timerAVal; |
| 121 | INT32 m_timerBVal; |
| 120 | 122 | INT32 m_irqstate; |
| 121 | 123 | INT8 m_status; |
| 122 | 124 | INT8 m_enable; |
| 123 | 125 | |
| 124 | | emu_timer *m_timA, *m_timB; |
| 125 | | |
| 126 | | INT8 m_reg0, m_reg1, m_reg2, m_reg3, m_pcmreg, m_timerreg; |
| 126 | INT8 m_reg0; |
| 127 | INT8 m_reg1; |
| 128 | INT8 m_reg2; |
| 129 | INT8 m_reg3; |
| 130 | INT8 m_pcmreg; |
| 131 | INT8 m_timerreg; |
| 127 | 132 | UINT32 m_ext_address; |
| 128 | 133 | UINT8 m_ext_read; |
| 129 | 134 | |
| 130 | 135 | const UINT8 *m_rom; |
| 136 | UINT32 m_clock; |
| 137 | |
| 138 | emu_timer *m_timA, *m_timB; |
| 139 | sound_stream *m_stream; |
| 140 | |
| 131 | 141 | devcb2_write_line m_irq_handler; |
| 132 | 142 | devcb2_read8 m_ext_read_handler; |
| 133 | 143 | devcb2_write8 m_ext_write_handler; |
| 134 | | |
| 135 | | UINT32 m_clock; |
| 136 | | sound_stream * m_stream; |
| 137 | 144 | }; |
| 138 | 145 | |
| 139 | 146 | extern const device_type YMF271; |
trunk/src/emu/sound/2203intf.c
| r22777 | r22778 | |
| 136 | 136 | const ay8910_interface *ay8910_config = m_ay8910_config != NULL ? m_ay8910_config : &default_ay8910_config; |
| 137 | 137 | |
| 138 | 138 | m_irq_handler.resolve(); |
| 139 | | m_psg = ay8910_start_ym(NULL, YM2203, this, clock(), ay8910_config); |
| 139 | m_psg = ay8910_start_ym(NULL, type(), this, clock(), ay8910_config); |
| 140 | 140 | assert_always(m_psg != NULL, "Error creating YM2203/AY8910 chip"); |
| 141 | 141 | |
| 142 | 142 | /* Timer Handler set */ |
| r22777 | r22778 | |
| 206 | 206 | ym2203_device::ym2203_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 207 | 207 | : device_t(mconfig, YM2203, "YM2203", tag, owner, clock), |
| 208 | 208 | device_sound_interface(mconfig, *this), |
| 209 | | m_irq_handler(*this) |
| 209 | m_irq_handler(*this), |
| 210 | m_ay8910_config(NULL) |
| 210 | 211 | { |
| 211 | 212 | } |
| 212 | 213 | |