Previous 199869 Revisions Next

r29525 Friday 11th April, 2014 at 05:59:33 UTC by Fabio Priuli
okim6258: converted to use inline config. nw.
[src/emu/sound]okim6258.c okim6258.h
[src/mess/drivers]x68k.c

trunk/src/emu/sound/okim6258.c
r29524r29525
108108
109109void okim6258_device::device_start()
110110{
111   const okim6258_interface *intf = (const okim6258_interface *)static_config();
112
113111   compute_tables();
114112
115113   m_master_clock = clock();
116   m_adpcm_type = intf->adpcm_type;
117114
118   /* D/A precision is 10-bits but 12-bit data can be output serially to an external DAC */
119   m_output_bits = intf->output_12bits ? 12 : 10;
120   m_divider = dividers[intf->divider];
115   m_divider = dividers[m_start_divider];
121116
122117   m_stream = stream_alloc(0, 1, clock()/m_divider);
123118
trunk/src/emu/sound/okim6258.h
r29524r29525
1010#define TYPE_3BITS          0
1111#define TYPE_4BITS          1
1212
13#define OUTPUT_10BITS       0
14#define OUTPUT_12BITS       1
13#define OUTPUT_10BITS       10
14#define OUTPUT_12BITS       12
1515
1616
1717//**************************************************************************
r29524r29525
2323#define MCFG_OKIM6258_REPLACE(_tag, _clock) \
2424   MCFG_DEVICE_REPLACE(_tag, OKIM6258, _clock)
2525
26#define MCFG_OKIM6258_DIVIDER(_div) \
27   okim6258_device::set_start_div(*device, _div);
2628
29#define MCFG_OKIM6258_ADPCM_TYPE(_type) \
30   okim6258_device::set_type(*device, _type);
31
32#define MCFG_OKIM6258_OUT_BITS(_bits) \
33   okim6258_device::set_outbits(*device, _bits);
34
35
2736//**************************************************************************
2837//  TYPE DEFINITIONS
2938//**************************************************************************
3039
31struct okim6258_interface
32{
33   int divider;
34   int adpcm_type;
35   int output_12bits;
36};
37
38
3940// ======================> okim6258_device
4041
4142class okim6258_device : public device_t,
r29524r29525
4546   okim6258_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
4647   ~okim6258_device() { }
4748
49   // static configuration
50   static void set_start_div(device_t &device, int div) { downcast<okim6258_device &>(device).m_start_divider = div; }
51   static void set_type(device_t &device, int type) { downcast<okim6258_device &>(device).m_adpcm_type = type; }
52   static void set_outbits(device_t &device, int outbit) { downcast<okim6258_device &>(device).m_output_bits = outbit; }
53
4854protected:
4955   // device-level overrides
5056   virtual void device_start();
r29524r29525
7177   UINT8  m_status;
7278
7379   UINT32 m_master_clock;    /* master clock frequency */
80   UINT32 m_start_divider;
7481   UINT32 m_divider;         /* master clock divider */
7582   UINT8 m_adpcm_type;       /* 3/4 bit ADPCM select */
7683   UINT8 m_data_in;          /* ADPCM data-in register */
7784   UINT8 m_nibble_shift;     /* nibble select */
7885   sound_stream *m_stream;   /* which stream are we playing on? */
7986
80   UINT8 m_output_bits;
87   UINT8 m_output_bits;      /* D/A precision is 10-bits but 12-bit data can be
88                        output serially to an external DAC */
8189
8290   INT32 m_signal;
8391   INT32 m_step;
trunk/src/mess/drivers/x68k.c
r29524r29525
13591359   {attotime::from_usec(32),attotime::from_nsec(450),attotime::from_nsec(50),attotime::from_nsec(50)}, // Burst mode timing (guesstimate)
13601360};
13611361
1362static const okim6258_interface x68k_okim6258_interface =
1363{
1364   FOSC_DIV_BY_512,
1365   TYPE_4BITS,
1366   OUTPUT_10BITS,
1367};
1368
13691362static INPUT_PORTS_START( x68000 )
13701363   PORT_START("ctrltype")
13711364   PORT_CONFNAME(0x0f, 0x00, "Joystick Port 1")
r29524r29525
18701863   MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(x68k_state,x68k_ct_w))  // CT1, CT2 from YM2151 port 0x1b
18711864   MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
18721865   MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
1866
18731867   MCFG_OKIM6258_ADD("okim6258", 4000000)
1874   MCFG_SOUND_CONFIG(x68k_okim6258_interface)
1868   MCFG_OKIM6258_DIVIDER(FOSC_DIV_BY_512)
1869   MCFG_OKIM6258_ADPCM_TYPE(TYPE_4BITS)
1870   MCFG_OKIM6258_OUT_BITS(OUTPUT_10BITS)
18751871   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
18761872   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
18771873

Previous 199869 Revisions Next


© 1997-2024 The MAME Team