trunk/src/mame/drivers/segaybd.c
| r29525 | r29526 | |
| 1138 | 1138 | INPUT_PORTS_END |
| 1139 | 1139 | |
| 1140 | 1140 | |
| 1141 | | |
| 1142 | 1141 | //************************************************************************** |
| 1143 | | // SOUND DEFINITIONS |
| 1144 | | //************************************************************************** |
| 1145 | | |
| 1146 | | static const sega_pcm_interface segapcm_interface = |
| 1147 | | { |
| 1148 | | BANK_12M | BANK_MASKF8 |
| 1149 | | }; |
| 1150 | | |
| 1151 | | |
| 1152 | | |
| 1153 | | //************************************************************************** |
| 1154 | 1142 | // GENERIC MACHINE DRIVERS |
| 1155 | 1143 | //************************************************************************** |
| 1156 | 1144 | |
| r29525 | r29526 | |
| 1206 | 1194 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.43) |
| 1207 | 1195 | |
| 1208 | 1196 | MCFG_SEGAPCM_ADD("pcm", SOUND_CLOCK/8) |
| 1209 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 1197 | MCFG_SEGAPCM_BANK(BANK_12M | BANK_MASKF8) |
| 1210 | 1198 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 1211 | 1199 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 1212 | 1200 | MACHINE_CONFIG_END |
trunk/src/mame/drivers/segahang.c
| r29525 | r29526 | |
| 778 | 778 | DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL |
| 779 | 779 | }; |
| 780 | 780 | |
| 781 | | static const sega_pcm_interface segapcm_interface = |
| 782 | | { |
| 783 | | BANK_512 |
| 784 | | }; |
| 785 | | |
| 786 | | |
| 787 | | |
| 788 | 781 | //************************************************************************** |
| 789 | 782 | // GRAPHICS DECODING |
| 790 | 783 | //************************************************************************** |
| r29525 | r29526 | |
| 882 | 875 | MCFG_SOUND_ROUTE(3, "rspeaker", 0.37) |
| 883 | 876 | |
| 884 | 877 | MCFG_SEGAPCM_ADD("pcm", MASTER_CLOCK_8MHz) |
| 885 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 878 | MCFG_SEGAPCM_BANK(BANK_512) |
| 886 | 879 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 887 | 880 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 888 | 881 | MACHINE_CONFIG_END |
| r29525 | r29526 | |
| 921 | 914 | MCFG_SOUND_ROUTE(3, "rspeaker", 0.37) |
| 922 | 915 | |
| 923 | 916 | MCFG_SEGAPCM_ADD("pcm", MASTER_CLOCK_8MHz/2) |
| 924 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 917 | MCFG_SEGAPCM_BANK(BANK_512) |
| 925 | 918 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 926 | 919 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 927 | 920 | MACHINE_CONFIG_END |
| r29525 | r29526 | |
| 943 | 936 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.43) |
| 944 | 937 | |
| 945 | 938 | MCFG_SEGAPCM_ADD("pcm", MASTER_CLOCK_8MHz/2) |
| 946 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 939 | MCFG_SEGAPCM_BANK(BANK_512) |
| 947 | 940 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 948 | 941 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 949 | 942 | MACHINE_CONFIG_END |
trunk/src/mame/drivers/segaorun.c
| r29525 | r29526 | |
| 1160 | 1160 | |
| 1161 | 1161 | |
| 1162 | 1162 | //************************************************************************** |
| 1163 | | // SOUND DEFINITIONS |
| 1164 | | //************************************************************************** |
| 1165 | | |
| 1166 | | static const sega_pcm_interface segapcm_interface = |
| 1167 | | { |
| 1168 | | BANK_512 |
| 1169 | | }; |
| 1170 | | |
| 1171 | | |
| 1172 | | |
| 1173 | | //************************************************************************** |
| 1174 | 1163 | // GRAPHICS DEFINITIONS |
| 1175 | 1164 | //************************************************************************** |
| 1176 | 1165 | |
| r29525 | r29526 | |
| 1223 | 1212 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.43) |
| 1224 | 1213 | |
| 1225 | 1214 | MCFG_SEGAPCM_ADD("pcm", SOUND_CLOCK/4) |
| 1226 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 1215 | MCFG_SEGAPCM_BANK(BANK_512) |
| 1227 | 1216 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 1228 | 1217 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 1229 | 1218 | MACHINE_CONFIG_END |
trunk/src/mame/drivers/segaxbd.c
| r29525 | r29526 | |
| 1503 | 1503 | |
| 1504 | 1504 | |
| 1505 | 1505 | //************************************************************************** |
| 1506 | | // SOUND DEFINITIONS |
| 1507 | | //************************************************************************** |
| 1508 | | |
| 1509 | | static const sega_pcm_interface segapcm_interface = |
| 1510 | | { |
| 1511 | | BANK_512 |
| 1512 | | }; |
| 1513 | | |
| 1514 | | |
| 1515 | | |
| 1516 | | //************************************************************************** |
| 1517 | 1506 | // GRAPHICS DEFINITIONS |
| 1518 | 1507 | //************************************************************************** |
| 1519 | 1508 | |
| r29525 | r29526 | |
| 1578 | 1567 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.43) |
| 1579 | 1568 | |
| 1580 | 1569 | MCFG_SEGAPCM_ADD("pcm", SOUND_CLOCK/4) |
| 1581 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 1570 | MCFG_SEGAPCM_BANK(BANK_512) |
| 1582 | 1571 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 1583 | 1572 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 1584 | 1573 | MACHINE_CONFIG_END |
| r29525 | r29526 | |
| 1625 | 1614 | MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright") |
| 1626 | 1615 | |
| 1627 | 1616 | MCFG_SEGAPCM_ADD("pcm2", SOUND_CLOCK/4) |
| 1628 | | MCFG_SOUND_CONFIG(segapcm_interface) |
| 1617 | MCFG_SEGAPCM_BANK(BANK_512) |
| 1629 | 1618 | MCFG_SOUND_ROUTE(0, "rearleft", 1.0) |
| 1630 | 1619 | MCFG_SOUND_ROUTE(1, "rearright", 1.0) |
| 1631 | 1620 | MACHINE_CONFIG_END |
trunk/src/emu/sound/segapcm.c
| r29525 | r29526 | |
| 19 | 19 | device_sound_interface(mconfig, *this), |
| 20 | 20 | m_ram(NULL), |
| 21 | 21 | m_rom(NULL), |
| 22 | m_bank(0), |
| 22 | 23 | m_bankshift(0), |
| 23 | 24 | m_bankmask(0), |
| 24 | 25 | m_rgnmask(0), |
| r29525 | r29526 | |
| 34 | 35 | void segapcm_device::device_start() |
| 35 | 36 | { |
| 36 | 37 | int mask, rom_mask, len; |
| 37 | | const sega_pcm_interface *intf = (const sega_pcm_interface *)static_config(); |
| 38 | 38 | |
| 39 | 39 | m_rom = *region(); |
| 40 | 40 | m_ram = auto_alloc_array(machine(), UINT8, 0x800); |
| 41 | 41 | |
| 42 | 42 | memset(m_ram, 0xff, 0x800); |
| 43 | 43 | |
| 44 | | m_bankshift = (UINT8)(intf->bank); |
| 45 | | mask = intf->bank >> 16; |
| 46 | | if(!mask) |
| 47 | | mask = BANK_MASK7>>16; |
| 44 | m_bankshift = (UINT8) m_bank; |
| 45 | mask = m_bank >> 16; |
| 46 | if (!mask) |
| 47 | mask = BANK_MASK7 >> 16; |
| 48 | 48 | |
| 49 | 49 | len = region()->bytes(); |
| 50 | 50 | m_rgnmask = len - 1; |
trunk/src/emu/sound/segapcm.h
| r29525 | r29526 | |
| 24 | 24 | #define MCFG_SEGAPCM_REPLACE(_tag, _clock) \ |
| 25 | 25 | MCFG_DEVICE_REPLACE(_tag, SEGAPCM, _clock) |
| 26 | 26 | |
| 27 | #define MCFG_SEGAPCM_BANK(_bank) \ |
| 28 | segapcm_device::set_bank(*device, _bank); |
| 29 | |
| 30 | |
| 27 | 31 | //************************************************************************** |
| 28 | 32 | // TYPE DEFINITIONS |
| 29 | 33 | //************************************************************************** |
| 30 | 34 | |
| 31 | | struct sega_pcm_interface |
| 32 | | { |
| 33 | | int bank; |
| 34 | | }; |
| 35 | | |
| 36 | 35 | class segapcm_device : public device_t, |
| 37 | 36 | public device_sound_interface |
| 38 | 37 | { |
| 39 | 38 | public: |
| 40 | 39 | segapcm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 41 | 40 | ~segapcm_device() { } |
| 42 | | |
| 41 | |
| 42 | // static configuration |
| 43 | static void set_bank(device_t &device, int bank) { downcast<segapcm_device &>(device).m_bank = bank; } |
| 44 | |
| 45 | DECLARE_WRITE8_MEMBER( sega_pcm_w ); |
| 46 | DECLARE_READ8_MEMBER( sega_pcm_r ); |
| 47 | |
| 43 | 48 | protected: |
| 44 | 49 | // device-level overrides |
| 45 | 50 | virtual void device_start(); |
| r29525 | r29526 | |
| 47 | 52 | // sound stream update overrides |
| 48 | 53 | virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); |
| 49 | 54 | |
| 50 | | public: |
| 51 | | DECLARE_WRITE8_MEMBER( sega_pcm_w ); |
| 52 | | DECLARE_READ8_MEMBER( sega_pcm_r ); |
| 53 | | |
| 54 | 55 | private: |
| 55 | 56 | UINT8* m_ram; |
| 56 | 57 | UINT8 m_low[16]; |
| 57 | 58 | const UINT8* m_rom; |
| 59 | int m_bank; |
| 58 | 60 | int m_bankshift; |
| 59 | 61 | int m_bankmask; |
| 60 | 62 | int m_rgnmask; |