Previous 199869 Revisions Next

r23807 Thursday 20th June, 2013 at 06:08:34 UTC by Fabio Priuli
Modernized the Konami 053252 device [Osso]
[src/emu/machine]k053252.c k053252.h
[src/mame/drivers]dbz.c hexion.c moo.c mystwarr.c overdriv.c qdrmfgp.c rollerg.c rungun.c vendetta.c xexex.c
[src/mame/includes]dbz.h hexion.h moo.h mystwarr.h overdriv.h qdrmfgp.h rollerg.h vendetta.h

trunk/src/emu/machine/k053252.c
r23806r23807
5555#include "emu.h"
5656#include "k053252.h"
5757
58struct k053252_state
59{
60   UINT8   regs[16];
61   UINT16  hc,hfp,hbp;
62   UINT16  vc,vfp,vbp;
63   UINT8   vsw,hsw;
6458
65   screen_device *screen;
66   devcb_resolved_write_line int1_en;
67   devcb_resolved_write_line int2_en;
68   devcb_resolved_write_line int1_ack;
69   devcb_resolved_write_line int2_ack;
70   //devcb_resolved_write8     int_time;
71   int offsx,offsy;
72};
59const device_type K053252 = &device_creator<k053252_device>;
7360
61k053252_device::k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
62   : device_t(mconfig, K053252, "Konami 053252", tag, owner, clock)
63{
64}
7465
75/*****************************************************************************
76    INLINE FUNCTIONS
77*****************************************************************************/
66//-------------------------------------------------
67//  device_config_complete - perform any
68//  operations now that the configuration is
69//  complete
70//-------------------------------------------------
7871
79INLINE k053252_state *k053252_get_safe_token( device_t *device )
72void k053252_device::device_config_complete()
8073{
81   assert(device != NULL);
82   assert(device->type() == K053252);
74   // inherit a copy of the static data
75   const k053252_interface *intf = reinterpret_cast<const k053252_interface *>(static_config());
76   if (intf != NULL)
77         *static_cast<k053252_interface *>(this) = *intf;
78   
79   // or initialize to defaults if none provided
80   else
81   {
82   m_screen_tag = "";
83   memset(&m_int1_en, 0, sizeof(m_int1_en));
84   memset(&m_int2_en, 0, sizeof(m_int2_en));
85   memset(&m_int1_ack, 0, sizeof(m_int1_ack));
86   memset(&m_int2_ack, 0, sizeof(m_int2_ack));
87   //memset(&m_int_time, 0, sizeof(m_int_time));
88   }
89}
8390
84   return (k053252_state *)downcast<k053252_device *>(device)->token();
91//-------------------------------------------------
92//  device_start - device-specific startup
93//-------------------------------------------------
94
95void k053252_device::device_start()
96{
97   save_item(NAME(m_regs));
98   m_screen = machine().device<screen_device>(m_screen_tag);
99   m_int1_en_func.resolve(m_int1_en, *this);
100   m_int2_en_func.resolve(m_int2_en, *this);
101   m_int1_ack_func.resolve(m_int1_ack, *this);
102   m_int2_ack_func.resolve(m_int2_ack, *this);
103   //m_int_time_func.resolve(m_int_time, *this);
85104}
86105
87INLINE const k053252_interface *k053252_get_interface( device_t *device )
106//-------------------------------------------------
107//  device_reset - device-specific reset
108//-------------------------------------------------
109
110void k053252_device::device_reset()
88111{
89   assert(device != NULL);
90   assert(device->type() == K053252);
112   int i;
91113
92   return (const k053252_interface *) device->static_config();
114   for (i = 0; i < 16; i++)
115      m_regs[i] = 0;
116
117   m_regs[0x08] = 1; // Xexex apparently does a wrong assignment for VC (sets up the INT enable register instead)
118   
119   m_hc=0;
120   m_hfp=0;
121   m_hbp=0;
122   m_vc=0;
123   m_vfp=0;
124   m_vbp=0;
125   m_vsw=0;
126   m_hsw=0;
93127}
94128
129
95130/*****************************************************************************
96131    DEVICE HANDLERS
97132*****************************************************************************/
98133
99READ8_DEVICE_HANDLER( k053252_r )
134READ8_MEMBER( k053252_device::read )
100135{
101   k053252_state *k053252 = k053252_get_safe_token(device);
102
103136   //TODO: debugger_access()
104137   popmessage("Warning: k053252 read %02x, contact MAMEdev",offset);
105138
106   return k053252->regs[offset];
139   return m_regs[offset];
107140}
108141
109static void k053252_res_change( device_t *device )
142void k053252_device::res_change()
110143{
111   k053252_state *k053252 = k053252_get_safe_token(device);
112
113   if(k053252->screen != NULL)
144   if(m_screen != NULL)
114145   {
115      if(k053252->hc && k053252->vc &&
116         k053252->hbp && k053252->hfp &&
117         k053252->vbp && k053252->vfp &&
118         k053252->hsw && k053252->vsw) //safety checks
146      if(m_hc && m_vc &&
147         m_hbp && m_hfp &&
148         m_vbp && m_vfp &&
149         m_hsw && m_vsw) //safety checks
119150      {
120151         rectangle visarea;
121152         //(HC+1) - HFP - HBP - 8*(HSW+1)
122153         //VC - VFP - VBP - (VSW+1)
123         attoseconds_t refresh = HZ_TO_ATTOSECONDS(device->clock()) * (k053252->hc) * k053252->vc;
154         attoseconds_t refresh = HZ_TO_ATTOSECONDS(clock()) * (m_hc) * m_vc;
124155
125         //printf("H %d %d %d %d\n",k053252->hc,k053252->hfp,k053252->hbp,k053252->hsw);
126         //printf("V %d %d %d %d\n",k053252->vc,k053252->vfp,k053252->vbp,k053252->vsw);
156         //printf("H %d %d %d %d\n",m_hc,m_hfp,m_hbp,m_hsw);
157         //printf("V %d %d %d %d\n",m_vc,m_vfp,m_vbp,m_vsw);
127158
128         visarea.min_x = k053252->offsx;
129         visarea.min_y = k053252->offsy;
130         visarea.max_x = k053252->offsx + k053252->hc - k053252->hfp - k053252->hbp - 8*(k053252->hsw) - 1;
131         visarea.max_y = k053252->offsy + k053252->vc - k053252->vfp - k053252->vbp - (k053252->vsw) - 1;
159         visarea.min_x = m_offsx;
160         visarea.min_y = m_offsy;
161         visarea.max_x = m_offsx + m_hc - m_hfp - m_hbp - 8*(m_hsw) - 1;
162         visarea.max_y = m_offsy + m_vc - m_vfp - m_vbp - (m_vsw) - 1;
132163
133         k053252->screen->configure(k053252->hc, k053252->vc, visarea, refresh);
164         m_screen->configure(m_hc, m_vc, visarea, refresh);
134165      }
135166   }
136167}
137168
138WRITE8_DEVICE_HANDLER( k053252_w )
169WRITE8_MEMBER( k053252_device::write )
139170{
140   k053252_state *k053252 = k053252_get_safe_token(device);
171   m_regs[offset] = data;
141172
142   k053252->regs[offset] = data;
143
144173   switch(offset)
145174   {
146175      case 0x00:
147176      case 0x01:
148         k053252->hc  = (k053252->regs[1]&0xff);
149         k053252->hc |= ((k053252->regs[0]&0x03)<<8);
150         k053252->hc ++;
151         logerror("%d (%04x) HC set\n",k053252->hc,k053252->hc);
152         k053252_res_change(device);
177         m_hc  = (m_regs[1]&0xff);
178         m_hc |= ((m_regs[0]&0x03)<<8);
179         m_hc ++;
180         logerror("%d (%04x) HC set\n",m_hc,m_hc);
181         res_change();
153182         break;
154183      case 0x02:
155184      case 0x03:
156         k053252->hfp  = (k053252->regs[3]&0xff);
157         k053252->hfp |= ((k053252->regs[2]&0x01)<<8);
158         logerror("%d (%04x) HFP set\n",k053252->hfp,k053252->hfp);
159         k053252_res_change(device);
185         m_hfp  = (m_regs[3]&0xff);
186         m_hfp |= ((m_regs[2]&0x01)<<8);
187         logerror("%d (%04x) HFP set\n",m_hfp,m_hfp);
188         res_change();
160189         break;
161190      case 0x04:
162191      case 0x05:
163         k053252->hbp  = (k053252->regs[5]&0xff);
164         k053252->hbp |= ((k053252->regs[4]&0x01)<<8);
165         logerror("%d (%04x) HBP set\n",k053252->hbp,k053252->hbp);
166         k053252_res_change(device);
192         m_hbp  = (m_regs[5]&0xff);
193         m_hbp |= ((m_regs[4]&0x01)<<8);
194         logerror("%d (%04x) HBP set\n",m_hbp,m_hbp);
195         res_change();
167196         break;
168      case 0x06: k053252->int1_en(data); break;
169      case 0x07: k053252->int2_en(data); break;
197      case 0x06: m_int1_en_func(data); break;
198      case 0x07: m_int2_en_func(data); break;
170199      case 0x08:
171200      case 0x09:
172         k053252->vc  = (k053252->regs[9]&0xff);
173         k053252->vc |= ((k053252->regs[8]&0x01)<<8);
174         logerror("%d (%04x) VC set\n",k053252->vc,k053252->vc);
175         k053252_res_change(device);
201         m_vc  = (m_regs[9]&0xff);
202         m_vc |= ((m_regs[8]&0x01)<<8);
203         logerror("%d (%04x) VC set\n",m_vc,m_vc);
204         res_change();
176205         break;
177206      case 0x0a:
178         k053252->vfp  = (k053252->regs[0x0a]&0xff);
179         logerror("%d (%04x) VFP set\n",k053252->vfp,k053252->vfp);
180         k053252_res_change(device);
207         m_vfp  = (m_regs[0x0a]&0xff);
208         logerror("%d (%04x) VFP set\n",m_vfp,m_vfp);
209         res_change();
181210         break;
182211      case 0x0b:
183         k053252->vbp  = (k053252->regs[0x0b]&0xff);
184         logerror("%d (%04x) VBP set\n",k053252->vbp,k053252->vbp);
185         k053252_res_change(device);
212         m_vbp  = (m_regs[0x0b]&0xff);
213         logerror("%d (%04x) VBP set\n",m_vbp,m_vbp);
214         res_change();
186215         break;
187216      case 0x0c:
188         k053252->vsw  = ((k053252->regs[0x0c]&0xf0) >> 4) + 1;
189         k053252->hsw  = ((k053252->regs[0x0c]&0x0f) >> 0) + 1;
190         logerror("%02x VSW / %02x HSW set\n",k053252->vsw,k053252->hsw);
191         k053252_res_change(device);
217         m_vsw  = ((m_regs[0x0c]&0xf0) >> 4) + 1;
218         m_hsw  = ((m_regs[0x0c]&0x0f) >> 0) + 1;
219         logerror("%02x VSW / %02x HSW set\n",m_vsw,m_hsw);
220         res_change();
192221         break;
193      //case 0x0d: k053252->int_time(data); break;
194      case 0x0e: k053252->int1_ack(1); break;
195      case 0x0f: k053252->int2_ack(1); break;
222      //case 0x0d: m_int_time(data); break;
223      case 0x0e: m_int1_ack_func(1); break;
224      case 0x0f: m_int2_ack_func(1); break;
196225   }
197226}
198
199
200
201/*****************************************************************************
202    DEVICE INTERFACE
203*****************************************************************************/
204
205static DEVICE_START( k053252 )
206{
207   k053252_state *k053252 = k053252_get_safe_token(device);
208   const k053252_interface *intf = k053252_get_interface(device);
209
210   device->save_item(NAME(k053252->regs));
211   k053252->screen = device->machine().device<screen_device>(intf->screen);
212   k053252->int1_en.resolve(intf->int1_en, *device);
213   k053252->int2_en.resolve(intf->int2_en, *device);
214   k053252->int1_ack.resolve(intf->int1_ack, *device);
215   k053252->int2_ack.resolve(intf->int2_ack, *device);
216   //k053252->int_time.resolve(intf->int_time, *device);
217   k053252->offsx = intf->offsx;
218   k053252->offsy = intf->offsy;
219}
220
221static DEVICE_RESET( k053252 )
222{
223   k053252_state *k053252 = k053252_get_safe_token(device);
224   int i;
225
226   for (i = 0; i < 16; i++)
227      k053252->regs[i] = 0;
228
229   k053252->regs[0x08] = 1; // Xexex apparently does a wrong assignment for VC (sets up the INT enable register instead)
230}
231
232
233const device_type K053252 = &device_creator<k053252_device>;
234
235k053252_device::k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
236   : device_t(mconfig, K053252, "Konami 053252", tag, owner, clock)
237{
238   m_token = global_alloc_clear(k053252_state);
239}
240
241//-------------------------------------------------
242//  device_config_complete - perform any
243//  operations now that the configuration is
244//  complete
245//-------------------------------------------------
246
247void k053252_device::device_config_complete()
248{
249}
250
251//-------------------------------------------------
252//  device_start - device-specific startup
253//-------------------------------------------------
254
255void k053252_device::device_start()
256{
257   DEVICE_START_NAME( k053252 )(this);
258}
259
260//-------------------------------------------------
261//  device_reset - device-specific reset
262//-------------------------------------------------
263
264void k053252_device::device_reset()
265{
266   DEVICE_RESET_NAME( k053252 )(this);
267}
trunk/src/emu/machine/k053252.h
r23806r23807
55#ifndef __K053252_H__
66#define __K053252_H__
77
8#include "devlegcy.h"
98
10class k053252_device : public device_t
9struct k053252_interface
1110{
11   const char         *m_screen_tag;
12   devcb_write_line   m_int1_en;
13   devcb_write_line   m_int2_en;
14   devcb_write_line   m_int1_ack;
15   devcb_write_line   m_int2_ack;
16//  devcb_write8       m_int_time;
17   int                m_offsx;
18   int                m_offsy;
19};
20
21class k053252_device : public device_t,
22                              public k053252_interface
23{
1224public:
1325   k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
14   ~k053252_device() { global_free(m_token); }
15
16   // access to legacy token
17   void *token() const { assert(m_token != NULL); return m_token; }
26   ~k053252_device() {}
27   
28   DECLARE_READ8_MEMBER( read );  // CCU registers
29   DECLARE_WRITE8_MEMBER( write );
30   
31   void res_change();
32   
1833protected:
1934   // device-level overrides
2035   virtual void device_config_complete();
2136   virtual void device_start();
2237   virtual void device_reset();
23private:
38   
39   private:
2440   // internal state
25   void *m_token;
41   UINT8   m_regs[16];
42   UINT16  m_hc,m_hfp,m_hbp;
43   UINT16  m_vc,m_vfp,m_vbp;
44   UINT8   m_vsw,m_hsw;
45
46   screen_device *m_screen;
47   devcb_resolved_write_line m_int1_en_func;
48   devcb_resolved_write_line m_int2_en_func;
49   devcb_resolved_write_line m_int1_ack_func;
50   devcb_resolved_write_line m_int2_ack_func;
51   //devcb_resolved_write8     m_int_time_func;
2652};
2753
2854extern const device_type K053252;
2955
30
31
32
33struct k053252_interface
34{
35   const char         *screen;
36   devcb_write_line   int1_en;
37   devcb_write_line   int2_en;
38   devcb_write_line   int1_ack;
39   devcb_write_line   int2_ack;
40//  devcb_write8       int_time;
41   int                offsx;
42   int                offsy;
43};
44
45
4656#define MCFG_K053252_ADD(_tag, _clock, _interface) \
4757   MCFG_DEVICE_ADD(_tag, K053252, _clock) \
4858   MCFG_DEVICE_CONFIG(_interface)
4959
50/**  Konami 053252  **/
51/* CRT and interrupt control unit */
52DECLARE_READ8_DEVICE_HANDLER( k053252_r );  // CCU registers
53DECLARE_WRITE8_DEVICE_HANDLER( k053252_w );
5460
55
56
5761#endif  /* __K033906_H__ */
trunk/src/mame/drivers/rollerg.c
r23806r23807
1313#include "emu.h"
1414#include "cpu/z80/z80.h"
1515#include "video/konicdev.h"
16#include "machine/k053252.h"
1716#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
1817#include "sound/3812intf.h"
1918#include "sound/k053260.h"
r23806r23807
9392   AM_RANGE(0x0053, 0x0053) AM_READ_PORT("DSW1")
9493   AM_RANGE(0x0060, 0x0060) AM_READ_PORT("DSW2")
9594   AM_RANGE(0x0061, 0x0061) AM_READ(pip_r)             /* ????? */
96   AM_RANGE(0x0100, 0x010f) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w)      /* 053252? */
95   AM_RANGE(0x0100, 0x010f) AM_DEVREADWRITE("k053252", k053252_device, read, write)      /* 053252? */
9796   AM_RANGE(0x0200, 0x020f) AM_DEVWRITE_LEGACY("k051316", k051316_ctrl_w)
9897   AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE_LEGACY("k053244", k053244_r, k053244_w)
9998   AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE_LEGACY("k051316", k051316_w)
trunk/src/mame/drivers/xexex.c
r23806r23807
318318   AM_RANGE(0x0c8000, 0x0c800f) AM_DEVREADWRITE("k053250", k053250_device, reg_r, reg_w)
319319   AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE_LEGACY("k054338", k054338_word_w)              // CLTC
320320   AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)               // priority encoder
321//  AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r,k053252_w,0x00ff)                // CCU
321//  AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)                // CCU
322322   AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
323323   AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
324324   AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
trunk/src/mame/drivers/moo.c
r23806r23807
4646#include "sound/okim6295.h"
4747#include "sound/k054539.h"
4848#include "video/konicdev.h"
49#include "machine/k053252.h"
5049#include "includes/konamipt.h"
5150#include "includes/moo.h"
5251
r23806r23807
263262   AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE_LEGACY("k054338", k054338_word_w)      /* K054338 alpha blending engine */
264263   AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
265264   AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
266   AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)                  /* CCU regs (ignored) */
265   AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)                  /* CCU regs (ignored) */
267266   AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
268267   AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
269268   AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
r23806r23807
328327   AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE_LEGACY("k054338", k054338_word_w)      /* K054338 alpha blending engine */
329328   AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
330329   AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
331   AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)                  /* CCU regs (ignored) */
330   AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)                  /* CCU regs (ignored) */
332331   AM_RANGE(0x0d2000, 0x0d20ff) AM_DEVREADWRITE_LEGACY("k054000", k054000_lsb_r, k054000_lsb_w)
333332   AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
334333   AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
trunk/src/mame/drivers/overdriv.c
r23806r23807
2323#include "cpu/m68000/m68000.h"
2424#include "video/konicdev.h"
2525#include "video/k053250.h"
26#include "machine/k053252.h"
2726#include "machine/eeprom.h"
2827#include "cpu/m6809/m6809.h"
2928#include "sound/2151intf.h"
r23806r23807
163162   AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("INPUTS")
164163   AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("SYSTEM")
165164   AM_RANGE(0x0e0000, 0x0e0001) AM_WRITENOP            /* unknown (always 0x30) */
166   AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)          /* 053252? (LSB) */
165   AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)          /* 053252? (LSB) */
167166   AM_RANGE(0x140000, 0x140001) AM_WRITENOP //watchdog reset?
168167   AM_RANGE(0x180000, 0x180001) AM_READ_PORT("PADDLE")
169168   AM_RANGE(0x1c0000, 0x1c001f) AM_DEVWRITE8_LEGACY("k051316_1", k051316_ctrl_w, 0xff00)
trunk/src/mame/drivers/dbz.c
r23806r23807
5757#include "sound/okim6295.h"
5858#include "includes/dbz.h"
5959#include "video/konicdev.h"
60#include "machine/k053252.h"
6160
6261
6362
r23806r23807
128127   AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w)
129128   AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w)
130129   AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi)
131   AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0xff00)      // 251 #1
130   AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0xff00)      // 251 #1
132131   AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)   // 251 #2
133132
134133   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_SHARE("bg2_videoram")
trunk/src/mame/drivers/mystwarr.c
r23806r23807
2424#include "emu.h"
2525#include "video/konamiic.h"
2626#include "video/k053250.h"
27#include "machine/k053252.h"
2827#include "includes/konamigx.h"
2928#include "cpu/m68000/m68000.h"
3029#include "cpu/z80/z80.h"
r23806r23807
266265   AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r)
267266   AM_RANGE(0x498000, 0x49801f) AM_RAM
268267   AM_RANGE(0x49a000, 0x49a001) AM_WRITE(sound_irq_w)
269   AM_RANGE(0x49c000, 0x49c01f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
268   AM_RANGE(0x49c000, 0x49c01f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)
270269   AM_RANGE(0x49e000, 0x49e007) AM_WRITE(irq_ack_w)    // VSCCS (custom)
271270   AM_RANGE(0x600000, 0x601fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w)
272271   AM_RANGE(0x602000, 0x603fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read(essential)
r23806r23807
294293   AM_RANGE(0x250000, 0x25000f) AM_DEVREADWRITE("k053250_1", k053250_device, reg_r, reg_w)
295294   AM_RANGE(0x254000, 0x25401f) AM_WRITE_LEGACY(K054338_word_w)
296295   AM_RANGE(0x258000, 0x2580ff) AM_WRITE_LEGACY(K055555_word_w)
297   AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
296   AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)
298297   AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w)
299298   AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w)
300299   AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w)
r23806r23807
337336   AM_RANGE(0x254000, 0x25401f) AM_WRITE_LEGACY(K054338_word_w)
338337   AM_RANGE(0x258000, 0x2580ff) AM_WRITE_LEGACY(K055555_word_w)
339338   AM_RANGE(0x25c000, 0x25c03f) AM_READWRITE(K055550_word_r,K055550_word_w)
340   AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
339   AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)
341340   AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w)
342341   AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w)
343342   AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w)
r23806r23807
439438   AM_RANGE(0x41800e, 0x41800f) AM_WRITE(sound_cmd2_w)
440439   AM_RANGE(0x418000, 0x41801f) AM_RAM                                 // sound regs fall through
441440   AM_RANGE(0x41a000, 0x41a001) AM_WRITE(sound_irq_w)
442   AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)              // CCU
441   AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)              // CCU
443442   AM_RANGE(0x41e000, 0x41e007) AM_WRITE_LEGACY(K056832_b_word_w)              // VSCCS
444443   AM_RANGE(0x480000, 0x483fff) AM_READWRITE(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_SHARE("spriteram")    // sprite RAM
445444   AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram")                     // palette RAM
r23806r23807
473472   AM_RANGE(0x480000, 0x48003f) AM_WRITE_LEGACY(K056832_word_w)        // VACSET
474473   AM_RANGE(0x482000, 0x482007) AM_WRITE_LEGACY(K056832_b_word_w)  // VSCCS
475474   AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w)
476   AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
475   AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)
477476   AM_RANGE(0x488000, 0x4880ff) AM_WRITE_LEGACY(K055555_word_w)
478477   AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w)
479478   AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w)
r23806r23807
520519   AM_RANGE(0x480000, 0x48003f) AM_WRITE_LEGACY(K056832_word_w)            // VACSET
521520   AM_RANGE(0x482000, 0x482007) AM_WRITE_LEGACY(K056832_b_word_w)          // VSCCS
522521   AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w)
523   AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
522   AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)
524523   AM_RANGE(0x488000, 0x4880ff) AM_WRITE_LEGACY(K055555_word_w)
525524   AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w)
526525   AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w)
trunk/src/mame/drivers/rungun.c
r23806r23807
4343#include "emu.h"
4444
4545#include "video/konicdev.h"
46#include "machine/k053252.h"
4746#include "cpu/m68000/m68000.h"
4847#include "cpu/z80/z80.h"
4948#include "machine/eeprom.h"
r23806r23807
180179   AM_RANGE(0x380000, 0x39ffff) AM_RAM                                         // work RAM
181180   AM_RANGE(0x400000, 0x43ffff) AM_READNOP // AM_READ(K053936_0_rom_r )       // '936 ROM readback window
182181   AM_RANGE(0x480000, 0x48001f) AM_READWRITE(rng_sysregs_r, rng_sysregs_w) AM_SHARE("sysreg")
183   AM_RANGE(0x4c0000, 0x4c001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r, k053252_w,0x00ff)                        // CCU (for scanline and vblank polling)
182   AM_RANGE(0x4c0000, 0x4c001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)                        // CCU (for scanline and vblank polling)
184183   AM_RANGE(0x540000, 0x540001) AM_WRITE(sound_irq_w)
185184   AM_RANGE(0x58000c, 0x58000d) AM_WRITE(sound_cmd1_w)
186185   AM_RANGE(0x58000e, 0x58000f) AM_WRITE(sound_cmd2_w)
trunk/src/mame/drivers/hexion.c
r23806r23807
8484#include "sound/k051649.h"
8585#include "includes/konamipt.h"
8686#include "includes/hexion.h"
87#include "machine/k053252.h"
8887
8988
9089WRITE8_MEMBER(hexion_state::coincntr_w)
r23806r23807
123122   AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w)
124123   AM_RANGE(0xe88f, 0xe88f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w)
125124   AM_RANGE(0xe8e0, 0xe8ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w)
126   AM_RANGE(0xf000, 0xf00f) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w)
125   AM_RANGE(0xf000, 0xf00f) AM_DEVREADWRITE("k053252", k053252_device, read, write)
127126   AM_RANGE(0xf200, 0xf200) AM_DEVWRITE("oki", okim6295_device, write)
128127   AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW1")
129128   AM_RANGE(0xf401, 0xf401) AM_READ_PORT("DSW2")
trunk/src/mame/drivers/vendetta.c
r23806r23807
8989#include "emu.h"
9090#include "cpu/z80/z80.h"
9191#include "video/konicdev.h"
92#include "machine/k053252.h"
9392#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
9493#include "machine/eeprom.h"
9594#include "sound/2151intf.h"
r23806r23807
266265   AM_RANGE(0x3f93, 0x3f93) AM_READ_PORT("SERVICE")
267266   AM_RANGE(0x3fa0, 0x3fa7) AM_DEVWRITE_LEGACY("k053246", k053246_w)           // 053246 (Sprite)
268267   AM_RANGE(0x3fb0, 0x3fbf) AM_DEVWRITE_LEGACY("k053251", k053251_w)           // 053251 (Priority Encoder)
269   AM_RANGE(0x3fc0, 0x3fcf) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w)              // Not Emulated (053252 ???)
268   AM_RANGE(0x3fc0, 0x3fcf) AM_DEVREADWRITE("k053252", k053252_device, read, write)              // Not Emulated (053252 ???)
270269   AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w)      // Coin Counter, 052109 RMRD, 053246 OBJCHA
271270   AM_RANGE(0x3fd2, 0x3fd2) AM_WRITE(vendetta_eeprom_w)    // EEPROM, Video banking
272271   AM_RANGE(0x3fd4, 0x3fd4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w)            // Sound
trunk/src/mame/drivers/qdrmfgp.c
r23806r23807
2626#include "machine/ataintf.h"
2727#include "sound/k054539.h"
2828#include "video/konicdev.h"
29#include "machine/k053252.h"
3029#include "machine/nvram.h"
3130#include "includes/qdrmfgp.h"
3231
r23806r23807
280279   AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram")   /* backup ram */
281280   AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
282281   AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)                                      /* video reg */
283   AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r, k053252_w,0x00ff)                    /* ccu */
282   AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff)                    /* ccu */
284283   AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR")                                         /* battery power & service sw */
285284   AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000")                                         /* inputport */
286285   AM_RANGE(0x350000, 0x350001) AM_WRITENOP                                                    /* unknown */
r23806r23807
303302   AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram")   /* backup ram */
304303   AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
305304   AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)                                      /* video reg */
306   AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r, k053252_w,0xff00)                    /* ccu */
305   AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0xff00)                    /* ccu */
307306   AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR")                                         /* battery power & service */
308307   AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000")                                         /* inputport */
309308   AM_RANGE(0x350000, 0x350001) AM_WRITENOP                                                    /* unknown */
trunk/src/mame/includes/moo.h
r23806r23807
55*************************************************************************/
66#include "sound/okim6295.h"
77#include "sound/k054539.h"
8#include "machine/k053252.h"
89
910class moo_state : public driver_device
1011{
r23806r23807
1920      m_k054539(*this, "k054539"),
2021      m_k053246(*this, "k053246"),
2122      m_k053251(*this, "k053251"),
23      m_k053252(*this, "k053252"),
2224      m_k056832(*this, "k056832"),
2325      m_k054338(*this, "k054338") { }
2426
r23806r23807
4547   optional_device<k054539_device> m_k054539;
4648   required_device<k053247_device> m_k053246;
4749   required_device<k053251_device> m_k053251;
50   optional_device<k053252_device> m_k053252;
4851   required_device<k056832_device> m_k056832;
4952   required_device<k054338_device> m_k054338;
5053
trunk/src/mame/includes/overdriv.h
r23806r23807
44
55*************************************************************************/
66#include "sound/k053260.h"
7#include "machine/k053252.h"
78
89class overdriv_state : public driver_device
910{
r23806r23807
1819      m_k051316_1(*this, "k051316_1"),
1920      m_k051316_2(*this, "k051316_2"),
2021      m_k053246(*this, "k053246"),
21      m_k053251(*this, "k053251") { }
22      m_k053251(*this, "k053251"),
23      m_k053252(*this, "k053252"){ }
2224
2325   /* memory pointers */
2426//  UINT16 *   m_paletteram;    // currently this uses generic palette handling
r23806r23807
4143   required_device<k051316_device> m_k051316_2;
4244   required_device<k053247_device> m_k053246;
4345   required_device<k053251_device> m_k053251;
46   required_device<k053252_device> m_k053252;
4447   DECLARE_WRITE16_MEMBER(eeprom_w);
4548   DECLARE_WRITE16_MEMBER(cpuA_ctrl_w);
4649   DECLARE_READ16_MEMBER(cpuB_ctrl_r);
trunk/src/mame/includes/dbz.h
r23806r23807
44
55*************************************************************************/
66#include "video/konicdev.h"
7#include "machine/k053252.h"
78
89class dbz_state : public driver_device
910{
r23806r23807
1617      m_audiocpu(*this, "audiocpu"),
1718      m_k053246(*this, "k053246"),
1819      m_k053251(*this, "k053251"),
20      m_k053252(*this, "k053252"),
1921      m_k056832(*this, "k056832"),
2022      m_k053936_1(*this, "k053936_1"),
2123      m_k053936_2(*this, "k053936_2") { }
r23806r23807
4042   required_device<cpu_device> m_audiocpu;
4143   required_device<k053247_device> m_k053246;
4244   required_device<k053251_device> m_k053251;
45   required_device<k053252_device> m_k053252;
4346   required_device<k056832_device> m_k056832;
4447   required_device<k053936_device> m_k053936_1;
4548   required_device<k053936_device> m_k053936_2;
trunk/src/mame/includes/mystwarr.h
r23806r23807
11#include "sound/k054539.h"
2#include "machine/k053252.h"
23
34class mystwarr_state : public konamigx_state
45{
56public:
67   mystwarr_state(const machine_config &mconfig, device_type type, const char *tag)
78      : konamigx_state(mconfig, type, tag),
9      m_maincpu(*this,"maincpu"),
10      m_k053252(*this, "k053252"),
811      m_gx_workram(*this,"gx_workram"),
9      m_spriteram(*this,"spriteram"),
10      m_maincpu(*this,"maincpu") { }
12      m_spriteram(*this,"spriteram")
13      { }
1114
15   required_device<cpu_device> m_maincpu;
16   required_device<k053252_device> m_k053252;
1217   required_shared_ptr<UINT16> m_gx_workram;
18   optional_shared_ptr<UINT16> m_spriteram;
1319   UINT8 m_mw_irq_control;
1420   int m_cur_sound_region;
1521   int m_layer_colorbase[6];
r23806r23807
2329   int m_roz_rombank;
2430   tilemap_t *m_ult_936_tilemap;
2531   UINT16 m_clip;
26   optional_shared_ptr<UINT16> m_spriteram;
27
28   required_device<cpu_device> m_maincpu;
32   
2933   DECLARE_READ16_MEMBER(eeprom_r);
3034   DECLARE_WRITE16_MEMBER(mweeprom_w);
3135   DECLARE_READ16_MEMBER(dddeeprom_r);
trunk/src/mame/includes/hexion.h
r23806r23807
1#include "machine/k053252.h"
2
13class hexion_state : public driver_device
24{
35public:
r23806r23807
35   hexion_state(const machine_config &mconfig, device_type type, const char *tag)
46      : driver_device(mconfig, type, tag) ,
5      m_maincpu(*this, "maincpu") { }
6
7      m_maincpu(*this, "maincpu"),
8      m_k053252(*this, "k053252")
9      { }
10   
11   required_device<cpu_device> m_maincpu;
12   required_device<k053252_device> m_k053252;
713   UINT8 *m_vram[2];
814   UINT8 *m_unkram;
r23806r23807
2632   UINT32 screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2733   TIMER_DEVICE_CALLBACK_MEMBER(hexion_scanline);
2834   inline void get_tile_info(tile_data &tileinfo,int tile_index,UINT8 *ram);
29   required_device<cpu_device> m_maincpu;
3035};
trunk/src/mame/includes/rollerg.h
r23806r23807
44
55*************************************************************************/
66#include "sound/k053260.h"
7#include "machine/k053252.h"
78
89class rollerg_state : public driver_device
910{
r23806r23807
1920      m_audiocpu(*this, "audiocpu"),
2021      m_k053260(*this, "k053260"),
2122      m_k053244(*this, "k053244"),
22      m_k051316(*this, "k051316") { }
23      m_k051316(*this, "k051316"),
24      m_k053252(*this, "k053252")
25      { }
2326
2427   /* memory pointers */
2528//  UINT8 *    m_paletteram;    // currently this uses generic palette handling
r23806r23807
3740   required_device<k053260_device> m_k053260;
3841   required_device<k05324x_device> m_k053244;
3942   required_device<k051316_device> m_k051316;
43   required_device<k053252_device> m_k053252;
4044   DECLARE_WRITE8_MEMBER(rollerg_0010_w);
4145   DECLARE_READ8_MEMBER(rollerg_k051316_r);
4246   DECLARE_WRITE8_MEMBER(soundirq_w);
trunk/src/mame/includes/vendetta.h
r23806r23807
44
55*************************************************************************/
66#include "sound/k053260.h"
7#include "machine/k053252.h"
78
89class vendetta_state : public driver_device
910{
r23806r23807
2122      m_k052109(*this, "k052109"),
2223      m_k053246(*this, "k053246"),
2324      m_k053251(*this, "k053251"),
25      m_k053252(*this, "k053252"),
2426      m_k054000(*this, "k054000") { }
2527
2628   /* memory pointers */
r23806r23807
4345   required_device<k052109_device> m_k052109;
4446   required_device<k053247_device> m_k053246;
4547   required_device<k053251_device> m_k053251;
48   optional_device<k053252_device> m_k053252;
4649   optional_device<k054000_device> m_k054000;
4750   DECLARE_WRITE8_MEMBER(vendetta_eeprom_w);
4851   DECLARE_READ8_MEMBER(vendetta_K052109_r);
trunk/src/mame/includes/qdrmfgp.h
r23806r23807
11#include "machine/ataintf.h"
22#include "sound/k054539.h"
3#include "machine/k053252.h"
34
45class qdrmfgp_state : public driver_device
56{
r23806r23807
1112      m_workram(*this, "workram"),
1213      m_k056832(*this, "k056832"),
1314      m_k054539(*this, "k054539"),
15      m_k053252(*this, "k053252"),
1416      m_ata(*this, "ata")
1517   {
1618   }
r23806r23807
2123   required_shared_ptr<UINT16> m_workram;
2224   required_device<k056832_device> m_k056832;
2325   required_device<k054539_device> m_k054539;
26   required_device<k053252_device> m_k053252;
2427   required_device<ata_interface_device> m_ata;
2528   UINT16 m_control;
2629   INT32 m_gp2_irq_control;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team