Previous 199869 Revisions Next

r28733 Wednesday 19th March, 2014 at 18:12:04 UTC by Osso
Converted k0053252_device to devcb2 (nw)
[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

trunk/src/mame/drivers/rollerg.c
r28732r28733
239239   m_maincpu->set_input_line(0, CLEAR_LINE);
240240}
241241
242static const k053252_interface rollerg_k053252_intf =
243{
244   DEVCB_NULL,
245   DEVCB_NULL,
246   DEVCB_DRIVER_LINE_MEMBER(rollerg_state,rollerg_irq_ack_w),
247   DEVCB_NULL,
248   14*8, 2*8
249};
250
251242void rollerg_state::machine_start()
252243{
253244   UINT8 *ROM = memregion("maincpu")->base();
r28732r28733
300291   MCFG_K051316_GFXDECODE("gfxdecode")
301292   MCFG_K051316_PALETTE("palette")
302293   
303   MCFG_K053252_ADD("k053252", 3000000*2, rollerg_k053252_intf)
294   MCFG_DEVICE_ADD("k053252", K053252, 3000000*2)
295   MCFG_K053252_INT1_ACK_CB(WRITELINE(rollerg_state,rollerg_irq_ack_w))
296   MCFG_K053252_OFFSETS(14*8, 2*8)
304297
305298   /* sound hardware */
306299   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/moo.c
r28732r28733
547547   "none"
548548};
549549
550static const k053252_interface moo_k053252_intf =
551{
552   DEVCB_NULL,
553   DEVCB_NULL,
554   DEVCB_NULL,
555   DEVCB_NULL,
556   40, 16
557};
558
559550static k054539_interface k054539_config;
560551
561552static MACHINE_CONFIG_START( moo, moo_state )
r28732r28733
573564
574565   MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
575566
576   MCFG_K053252_ADD("k053252", XTAL_32MHz/4, moo_k053252_intf) // 8MHz
567   MCFG_DEVICE_ADD("k053252", K053252, XTAL_32MHz/4) // 8MHz
568   MCFG_K053252_OFFSETS(40, 16)
577569
578570   /* video hardware */
579571   MCFG_SCREEN_ADD("screen", RASTER)
trunk/src/mame/drivers/rungun.c
r28732r28733
344344   rng_sprite_callback
345345};
346346
347static const k053252_interface rng_k053252_intf =
348{
349   DEVCB_NULL,
350   DEVCB_NULL,
351   DEVCB_NULL,
352   DEVCB_NULL,
353   9*8, 24
354};
355
356347void rungun_state::machine_start()
357348{
358349   UINT8 *ROM = memregion("soundcpu")->base();
r28732r28733
411402   MCFG_K055673_ADD("k055673", rng_k055673_intf)
412403   MCFG_K055673_GFXDECODE("gfxdecode")
413404   MCFG_K055673_PALETTE("palette")
414   MCFG_K053252_ADD("k053252", 16000000/2, rng_k053252_intf)
405   
406   MCFG_DEVICE_ADD("k053252", K053252, 16000000/2)
407   MCFG_K053252_OFFSETS(9*8, 24)
415408
416409   /* sound hardware */
417410   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mame/drivers/hexion.c
r28732r28733
208208      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
209209}
210210
211static const k053252_interface hexion_k053252_intf =
212{
213   DEVCB_NULL,
214   DEVCB_NULL,
215   DEVCB_DRIVER_LINE_MEMBER(hexion_state,hexion_irq_ack_w),
216   DEVCB_DRIVER_LINE_MEMBER(hexion_state,hexion_nmi_ack_w),
217   0, 0
218};
219211
220212static MACHINE_CONFIG_START( hexion, hexion_state )
221213
r28732r28733
224216   MCFG_CPU_PROGRAM_MAP(hexion_map)
225217   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hexion_state, hexion_scanline, "screen", 0, 1)
226218
227   MCFG_K053252_ADD("k053252", 24000000/2, hexion_k053252_intf)
219   MCFG_DEVICE_ADD("k053252", K053252, 24000000/2)
220   MCFG_K053252_INT1_ACK_CB(WRITELINE(hexion_state, hexion_irq_ack_w))
221   MCFG_K053252_INT2_ACK_CB(WRITELINE(hexion_state, hexion_nmi_ack_w))
228222
229223   /* video hardware */
230224   MCFG_SCREEN_ADD("screen", RASTER)
trunk/src/mame/drivers/dbz.c
r28732r28733
318318   m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE);
319319}
320320
321
322static const k053252_interface dbz_k053252_intf =
323{
324   DEVCB_NULL,
325   DEVCB_NULL,
326   DEVCB_DRIVER_LINE_MEMBER(dbz_state,dbz_irq2_ack_w),
327   DEVCB_NULL,
328   0, 0
329};
330
331321void dbz_state::machine_start()
332322{
333323   save_item(NAME(m_control));
r28732r28733
386376   MCFG_K053251_ADD("k053251")
387377   MCFG_K053936_ADD("k053936_1", dbz_k053936_intf)
388378   MCFG_K053936_ADD("k053936_2", dbz_k053936_intf)
389   MCFG_K053252_ADD("k053252", 16000000/2, dbz_k053252_intf)
379   MCFG_DEVICE_ADD("k053252", K053252, 16000000/2)
380   MCFG_K053252_INT1_ACK_CB(WRITELINE(dbz_state, dbz_irq2_ack_w))
390381
391382   /* sound hardware */
392383   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mame/drivers/xexex.c
r28732r28733
484484   xexex_sprite_callback
485485};
486486
487static const k053252_interface xexex_k053252_intf =
488{
489   DEVCB_NULL,
490   DEVCB_NULL,
491   DEVCB_NULL,
492   DEVCB_NULL,
493   0, 0
494};
495
496487void xexex_state::xexex_postload()
497488{
498489   parse_control2();
r28732r28733
579570   MCFG_K053246_PALETTE("palette")
580571   MCFG_K053250_ADD("k053250", "palette", "screen", -5, -16)
581572   MCFG_K053251_ADD("k053251")
582   MCFG_K053252_ADD("k053252", XTAL_32MHz/4, xexex_k053252_intf)
573   MCFG_DEVICE_ADD("k053252", K053252, XTAL_32MHz/4)
583574   MCFG_K054338_ADD("k054338", xexex_k054338_intf)
584575
585576   /* sound hardware */
trunk/src/mame/drivers/qdrmfgp.c
r28732r28733
565565   qdrmfgp2_tile_callback, "none"
566566};
567567
568static const k053252_interface qdrmfgp_k053252_intf =
569{
570   DEVCB_NULL,
571   DEVCB_NULL,
572   DEVCB_NULL,
573   DEVCB_NULL,
574   40, 16
575};
576
577static const k053252_interface qdrmfgp2_k053252_intf =
578{
579   DEVCB_NULL,
580   DEVCB_NULL,
581   DEVCB_NULL,
582   DEVCB_NULL,
583   40, 16
584};
585
586568MACHINE_START_MEMBER(qdrmfgp_state,qdrmfgp)
587569{
588570   save_item(NAME(m_control));
r28732r28733
643625   MCFG_K056832_ADD("k056832", qdrmfgp_k056832_intf)
644626   MCFG_K056832_GFXDECODE("gfxdecode")
645627   MCFG_K056832_PALETTE("palette")
646   MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp_k053252_intf)
628   
629   MCFG_DEVICE_ADD("k053252", K053252, XTAL_32MHz/4)
630   MCFG_K053252_OFFSETS(40, 16)
647631
648632   /* sound hardware */
649633   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
r28732r28733
685669   MCFG_K056832_ADD("k056832", qdrmfgp2_k056832_intf)
686670   MCFG_K056832_GFXDECODE("gfxdecode")
687671   MCFG_K056832_PALETTE("palette")
688   MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp2_k053252_intf)
672   
673   MCFG_DEVICE_ADD("k053252", K053252, XTAL_32MHz/4)
674   MCFG_K053252_OFFSETS(40, 16)
689675
690676   /* sound hardware */
691677   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mame/drivers/overdriv.c
r28732r28733
312312   m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
313313}
314314
315static const k053252_interface overdriv_k053252_intf =
316{
317   DEVCB_NULL,
318   DEVCB_NULL,
319   DEVCB_NULL,
320   DEVCB_NULL,
321   13*8, 2*8
322};
323315
324
325316static MACHINE_CONFIG_START( overdriv, overdriv_state )
326317
327318   /* basic machine hardware */
r28732r28733
372363   MCFG_K053251_ADD("k053251")
373364   MCFG_K053250_ADD("k053250_1", "palette", "screen", 0, 0)
374365   MCFG_K053250_ADD("k053250_2", "palette", "screen", 0, 0)
375   MCFG_K053252_ADD("k053252", 24000000/4, overdriv_k053252_intf)
366   
367   MCFG_DEVICE_ADD("k053252", K053252, 24000000/4)
368   MCFG_K053252_OFFSETS(13*8, 2*8)
376369
377370   /* sound hardware */
378371   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mame/drivers/mystwarr.c
r28732r28733
973973   for (i=5; i<=7; i++) m_k054539_1->set_gain(i, 2.0);
974974}
975975
976static const k053252_interface mystwarr_k053252_intf =
977{
978   DEVCB_NULL,
979   DEVCB_NULL,
980   DEVCB_NULL,
981   DEVCB_NULL,
982   24, 16
983};
984976
985static const k053252_interface viostorm_k053252_intf =
986{
987   DEVCB_NULL,
988   DEVCB_NULL,
989   DEVCB_NULL,
990   DEVCB_NULL,
991   40, 16
992};
993
994static const k053252_interface metamrph_k053252_intf =
995{
996   DEVCB_NULL,
997   DEVCB_NULL,
998   DEVCB_NULL,
999   DEVCB_NULL,
1000   24, 24
1001};
1002
1003static const k053252_interface martchmp_k053252_intf =
1004{
1005   DEVCB_NULL,
1006   DEVCB_NULL,
1007   DEVCB_NULL,
1008   DEVCB_NULL,
1009   32, 24-1
1010};
1011
1012static const k053252_interface dadandrm_k053252_intf =
1013{
1014   DEVCB_NULL,
1015   DEVCB_NULL,
1016   DEVCB_NULL,
1017   DEVCB_NULL,
1018   24, 16+1
1019};
1020
1021static const k053252_interface gaiapols_k053252_intf =
1022{
1023   DEVCB_NULL,
1024   DEVCB_NULL,
1025   DEVCB_NULL,
1026   DEVCB_NULL,
1027   40, 16
1028};
1029
1030977static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
1031978
1032979   /* basic machine hardware */
r28732r28733
1040987   MCFG_QUANTUM_TIME(attotime::from_hz(1920))
1041988
1042989   MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
1043   MCFG_K053252_ADD("k053252", 6000000, mystwarr_k053252_intf) // 6 MHz?
1044
990   
991   MCFG_DEVICE_ADD("k053252", K053252, 6000000) // 6 MHz?
992   MCFG_K053252_OFFSETS(24, 16)
993   
1045994   MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr)
1046995   MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr)
1047996
r28732r28733
10891038
10901039   MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,viostorm)
10911040
1092   MCFG_DEVICE_REMOVE("k053252")
1093   MCFG_K053252_ADD("k053252", 16000000/2, viostorm_k053252_intf)
1094
1041   MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2)
1042   MCFG_K053252_OFFSETS(40, 16)
1043   
10951044   /* basic machine hardware */
10961045   MCFG_CPU_MODIFY("maincpu")
10971046   MCFG_CPU_PROGRAM_MAP(viostorm_map)
r28732r28733
11191068   MCFG_TIMER_MODIFY("scantimer")
11201069   MCFG_TIMER_DRIVER_CALLBACK(mystwarr_state, metamrph_interrupt)
11211070
1122   MCFG_DEVICE_REMOVE("k053252")
1123   MCFG_K053252_ADD("k053252", 6000000, metamrph_k053252_intf) // 6 MHz?
1071   MCFG_DEVICE_MODIFY("k053252")
1072   MCFG_K053252_OFFSETS(24, 24)
1073   
11241074   MCFG_K053250_ADD("k053250_1", "palette", "screen", -7, 0)
11251075
11261076   /* video hardware */
r28732r28733
11441094   MCFG_CPU_VBLANK_INT_DRIVER("screen", mystwarr_state,  ddd_interrupt)
11451095   MCFG_DEVICE_REMOVE("scantimer")
11461096
1147   MCFG_DEVICE_REMOVE("k053252")
1148   MCFG_K053252_ADD("k053252", 6000000, dadandrm_k053252_intf) // 6 MHz?
1097   MCFG_DEVICE_MODIFY("k053252")
1098   MCFG_K053252_OFFSETS(24, 16+1)
11491099
11501100   MCFG_GFXDECODE_MODIFY("gfxdecode", dadandrn)
11511101
r28732r28733
11701120   MCFG_CPU_VBLANK_INT_DRIVER("screen", mystwarr_state,  ddd_interrupt)
11711121   MCFG_DEVICE_REMOVE("scantimer")
11721122
1173   MCFG_DEVICE_REMOVE("k053252")
1174   MCFG_K053252_ADD("k053252", 6000000, gaiapols_k053252_intf) // 6 MHz?
1123   MCFG_DEVICE_MODIFY("k053252")
1124   MCFG_K053252_OFFSETS(40, 16)
11751125   
11761126   MCFG_K054000_ADD("k054000")
11771127
r28732r28733
11991149   MCFG_TIMER_MODIFY("scantimer")
12001150   MCFG_TIMER_DRIVER_CALLBACK(mystwarr_state, mchamp_interrupt)
12011151
1202   MCFG_DEVICE_REMOVE("k053252")
1203   MCFG_K053252_ADD("k053252", 16000000/2, martchmp_k053252_intf)
1152   MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2)
1153   MCFG_K053252_OFFSETS(32, 24-1)
12041154
12051155   MCFG_PALETTE_MODIFY("palette")
12061156   MCFG_PALETTE_FORMAT(XRGB)
trunk/src/mame/drivers/vendetta.c
r28732r28733
433433   vendetta_sprite_callback
434434};
435435
436static const k053252_interface esckids_k053252_intf =
437{
438   DEVCB_NULL,
439   DEVCB_NULL,
440   DEVCB_NULL,
441   DEVCB_NULL,
442   12*8, 1*8
443};
444436
445437void vendetta_state::machine_start()
446438{
r28732r28733
546538   MCFG_K053246_ADD("k053246", esckids_k053246_intf)
547539   MCFG_K053246_GFXDECODE("gfxdecode")
548540   MCFG_K053246_PALETTE("palette")
549   MCFG_K053252_ADD("k053252", 6000000, esckids_k053252_intf)
541   MCFG_DEVICE_ADD("k053252", K053252, 6000000)
542   MCFG_K053252_OFFSETS(12*8, 1*8)
550543MACHINE_CONFIG_END
551544
552545
trunk/src/emu/machine/k053252.c
r28732r28733
6565
6666k053252_device::k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
6767   : device_t(mconfig, K053252, "Konami 053252", tag, owner, clock, "k053252", __FILE__),
68      device_video_interface(mconfig, *this)
68      device_video_interface(mconfig, *this),
69      m_int1_en_cb(*this),
70      m_int2_en_cb(*this),
71      m_int1_ack_cb(*this),
72      m_int2_ack_cb(*this),
73      //m_int_time_cb(*this),
74      m_offsx(0),
75      m_offsy(0)
6976{
7077}
7178
72//-------------------------------------------------
73//  device_config_complete - perform any
74//  operations now that the configuration is
75//  complete
76//-------------------------------------------------
7779
78void k053252_device::device_config_complete()
79{
80   // inherit a copy of the static data
81   const k053252_interface *intf = reinterpret_cast<const k053252_interface *>(static_config());
82   if (intf != NULL)
83         *static_cast<k053252_interface *>(this) = *intf;
84
85   // or initialize to defaults if none provided
86   else
87   {
88   memset(&m_int1_en, 0, sizeof(m_int1_en));
89   memset(&m_int2_en, 0, sizeof(m_int2_en));
90   memset(&m_int1_ack, 0, sizeof(m_int1_ack));
91   memset(&m_int2_ack, 0, sizeof(m_int2_ack));
92   //memset(&m_int_time, 0, sizeof(m_int_time));
93   }
94}
95
9680//-------------------------------------------------
9781//  device_start - device-specific startup
9882//-------------------------------------------------
r28732r28733
10084void k053252_device::device_start()
10185{
10286   save_item(NAME(m_regs));
103   m_int1_en_func.resolve(m_int1_en, *this);
104   m_int2_en_func.resolve(m_int2_en, *this);
105   m_int1_ack_func.resolve(m_int1_ack, *this);
106   m_int2_ack_func.resolve(m_int2_ack, *this);
107   //m_int_time_func.resolve(m_int_time, *this);
87   m_int1_en_cb.resolve_safe();
88   m_int2_en_cb.resolve_safe();
89   m_int1_ack_cb.resolve_safe();
90   m_int2_ack_cb.resolve_safe();
91   //m_int_time_cb.resolve_safe();
10892}
10993
11094//-------------------------------------------------
r28732r28733
205189         logerror("%d (%04x) HBP set\n",m_hbp,m_hbp);
206190         res_change();
207191         break;
208      case 0x06: m_int1_en_func(data); break;
209      case 0x07: m_int2_en_func(data); break;
192      case 0x06: m_int1_en_cb(data); break;
193      case 0x07: m_int2_en_cb(data); break;
210194      case 0x08:
211195      case 0x09:
212196         m_vc  = (m_regs[9]&0xff);
r28732r28733
231215         res_change();
232216         break;
233217      //case 0x0d: m_int_time(data); break;
234      case 0x0e: m_int1_ack_func(1); break;
235      case 0x0f: m_int2_ack_func(1); break;
218      case 0x0e: m_int1_ack_cb(1); break;
219      case 0x0f: m_int2_ack_cb(1); break;
236220   }
237221}
trunk/src/emu/machine/k053252.h
r28732r28733
66#define __K053252_H__
77
88
9struct k053252_interface
10{
11   devcb_write_line   m_int1_en;
12   devcb_write_line   m_int2_en;
13   devcb_write_line   m_int1_ack;
14   devcb_write_line   m_int2_ack;
15//  devcb_write8       m_int_time;
16   int                m_offsx;
17   int                m_offsy;
18};
9#define MCFG_K053252_INT1_EN_CB(_devcb) \
10   devcb = &k053252_device::set_int1_en_callback(*device, DEVCB2_##_devcb);
1911
12#define MCFG_K053252_INT2_EN_CB(_devcb) \
13   devcb = &k053252_device::set_int2_en_callback(*device, DEVCB2_##_devcb);
14
15#define MCFG_K053252_INT1_ACK_CB(_devcb) \
16   devcb = &k053252_device::set_int1_ack_callback(*device, DEVCB2_##_devcb);
17
18#define MCFG_K053252_INT2_ACK_CB(_devcb) \
19   devcb = &k053252_device::set_int2_ack_callback(*device, DEVCB2_##_devcb);
20
21/*#define MCFG_K053252_INT_TIME_CB(_devcb) \
22   devcb = &k053252_device::set_int_time_callback(*device, DEVCB2_##_devcb); */
23
24#define MCFG_K053252_OFFSETS(_offsx, _offsy) \
25   k053252_device::set_offsets(*device, _offsx, _offsy);
26
27
2028class k053252_device : public device_t,
21                  public device_video_interface,
22                  public k053252_interface
29                  public device_video_interface
2330{
2431public:
2532   k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2633   ~k053252_device() {}
2734
35   template<class _Object> static devcb2_base &set_int1_en_callback(device_t &device, _Object object) { return downcast<k053252_device &>(device).m_int1_en_cb.set_callback(object); }
36   template<class _Object> static devcb2_base &set_int2_en_callback(device_t &device, _Object object) { return downcast<k053252_device &>(device).m_int2_en_cb.set_callback(object); }
37   template<class _Object> static devcb2_base &set_int1_ack_callback(device_t &device, _Object object) { return downcast<k053252_device &>(device).m_int1_ack_cb.set_callback(object); }
38   template<class _Object> static devcb2_base &set_int2_ack_callback(device_t &device, _Object object) { return downcast<k053252_device &>(device).m_int2_ack_cb.set_callback(object); }
39   //template<class _Object> static devcb2_base &set_int_time_callback(device_t &device, _Object object) { return downcast<k053252_device &>(device).m_int_time_cb.set_callback(object); }
40   static void set_offsets(device_t &device, int offsx, int offsy) { downcast<k053252_device &>(device).m_offsx = offsx; downcast<k053252_device &>(device).m_offsy = offsy;}
41   
2842   DECLARE_READ8_MEMBER( read );  // CCU registers
2943   DECLARE_WRITE8_MEMBER( write );
3044
r28732r28733
3246
3347protected:
3448   // device-level overrides
35   virtual void device_config_complete();
3649   virtual void device_start();
3750   virtual void device_reset();
3851
r28732r28733
4356   UINT16  m_vc,m_vfp,m_vbp;
4457   UINT8   m_vsw,m_hsw;
4558
46   devcb_resolved_write_line m_int1_en_func;
47   devcb_resolved_write_line m_int2_en_func;
48   devcb_resolved_write_line m_int1_ack_func;
49   devcb_resolved_write_line m_int2_ack_func;
50   //devcb_resolved_write8     m_int_time_func;
59   devcb2_write_line   m_int1_en_cb;
60   devcb2_write_line   m_int2_en_cb;
61   devcb2_write_line   m_int1_ack_cb;
62   devcb2_write_line   m_int2_ack_cb;
63//  devcb2_write8       m_int_time_cb;
64   int                m_offsx;
65   int                m_offsy;
5166};
5267
5368extern const device_type K053252;
5469
55#define MCFG_K053252_ADD(_tag, _clock, _interface) \
56   MCFG_DEVICE_ADD(_tag, K053252, _clock) \
57   MCFG_DEVICE_CONFIG(_interface)
5870
59
6071#endif  /* __K033906_H__ */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team