Previous 199869 Revisions Next

r34563 Friday 23rd January, 2015 at 17:54:07 UTC by Osso
dynax, ddenlovr: small cleanups, moved ddenlovr specific variables into ddenlovr_state (nw)
[src/mame/drivers]ddenlovr.c dynax.c
[src/mame/includes]dynax.h

trunk/src/mame/drivers/ddenlovr.c
r243074r243075
110110#include "cpu/m68000/m68000.h"
111111#include "cpu/z80/z80.h"
112112#include "sound/ay8910.h"
113#include "sound/okim6295.h"
114#include "sound/2413intf.h"
115113#include "machine/msm6242.h"
116114#include "machine/nvram.h"
117115#include "includes/dynax.h"
r243074r243075
153151{
154152public:
155153   ddenlovr_state(const machine_config &mconfig, device_type type, const char *tag)
156      : dynax_state(mconfig, type, tag)
157      { }
154      : dynax_state(mconfig, type, tag),
155      m_dsw_sel16(*this, "dsw_sel16"),
156      m_protection1(*this, "protection1"),
157      m_protection2(*this, "protection2")   { }
158     
158159
160   optional_shared_ptr<UINT16> m_dsw_sel16;
161   optional_shared_ptr<UINT16> m_protection1;
162   optional_shared_ptr<UINT16> m_protection2;
163
164
165   UINT8 *  m_ddenlovr_pixmap[8];
166
167   /* blitter (TODO: merge with the dynax.h, where possible) */
168   int m_extra_layers;
169   int m_ddenlovr_dest_layer;
170   int m_ddenlovr_blit_flip;
171   int m_ddenlovr_blit_x;
172   int m_ddenlovr_blit_y;
173   int m_ddenlovr_blit_address;
174   int m_ddenlovr_blit_pen;
175   int m_ddenlovr_blit_pen_mode;
176   int m_ddenlovr_blitter_irq_flag;
177   int m_ddenlovr_blitter_irq_enable;
178   int m_ddenlovr_rect_width;
179   int m_ddenlovr_rect_height;
180   int m_ddenlovr_clip_width;
181   int m_ddenlovr_clip_height;
182   int m_ddenlovr_line_length;
183   int m_ddenlovr_clip_ctrl;
184   int m_ddenlovr_clip_x;
185   int m_ddenlovr_clip_y;
186   int m_ddenlovr_scroll[8*2];
187   int m_ddenlovr_priority;
188   int m_ddenlovr_priority2;
189   int m_ddenlovr_bgcolor;
190   int m_ddenlovr_bgcolor2;
191   int m_ddenlovr_layer_enable;
192   int m_ddenlovr_layer_enable2;
193   int m_ddenlovr_palette_base[8];
194   int m_ddenlovr_palette_mask[8];
195   int m_ddenlovr_transparency_pen[8];
196   int m_ddenlovr_transparency_mask[8];
197   int m_ddenlovr_blit_latch;
198   int m_ddenlovr_blit_pen_mask;   // not implemented
199   int m_ddenlovr_blit_rom_bits;           // usually 8, 16 in hanakanz
200   const int *m_ddenlovr_blit_commands;
201   int m_ddenlovr_blit_regs[2];
202
203   /* ddenlovr misc (TODO: merge with dynax.h, where possible) */
204   UINT8 m_palram[0x200];
205   int m_okibank;
206   UINT8 m_rongrong_blitter_busy_select;
207   UINT8 m_prot_val;
208   UINT16 m_prot_16;
209   UINT16 m_quiz365_protection[2];
210
211   UINT16 m_mmpanic_leds;  /* A led for each of the 9 buttons */
212   UINT8 m_funkyfig_lockout;
213   UINT8 m_romdata[2];
214   int m_palette_index;
215   UINT8 m_hginga_rombank;
216   UINT8 m_mjflove_irq_cause;
217   UINT8 m_daimyojn_palette_sel;
218
159219   DECLARE_MACHINE_START(ddenlovr);
160220   DECLARE_MACHINE_RESET(ddenlovr);
161221   DECLARE_VIDEO_START(ddenlovr);
r243074r243075
350410   DECLARE_VIDEO_START(htengoku);
351411   DECLARE_WRITE8_MEMBER(htengoku_dsw_w);
352412   DECLARE_READ8_MEMBER(htengoku_dsw_r);
413   DECLARE_WRITE8_MEMBER( quizchq_oki_bank_w );
414   DECLARE_WRITE16_MEMBER( ddenlovr_oki_bank_w );
415   DECLARE_WRITE16_MEMBER( quiz365_oki_bank1_w );
416   DECLARE_WRITE16_MEMBER( quiz365_oki_bank2_w );
417   DECLARE_WRITE8_MEMBER( ddenlovr_select_w );
418   DECLARE_READ8_MEMBER( quiz365_input_r );
419   DECLARE_WRITE16_MEMBER( nettoqc_oki_bank_w );
420   DECLARE_WRITE8_MEMBER( hanakanz_oki_bank_w );
421   DECLARE_WRITE8_MEMBER( mjchuuka_oki_bank_w );
422   DECLARE_READ8_MEMBER( hginga_dsw_r );
423   DECLARE_WRITE8_MEMBER( mjflove_okibank_w );
424   DECLARE_WRITE8_MEMBER( jongtei_okibank_w );
425   DECLARE_READ8_MEMBER( seljan2_dsw_r );
426   DECLARE_WRITE8_MEMBER( daimyojn_okibank_w );
353427
354428   void ddenlovr_flipscreen_w( UINT8 data );
355429   void ddenlovr_blit_flip_w( UINT8 data );
r243074r243075
368442   void mmpanic_update_leds();
369443   void mjchuuka_get_romdata();
370444   UINT8 hgokou_player_r( int player );
371   DECLARE_WRITE8_MEMBER( quizchq_oki_bank_w );
372   DECLARE_WRITE16_MEMBER( ddenlovr_oki_bank_w );
373   DECLARE_WRITE16_MEMBER( quiz365_oki_bank1_w );
374   DECLARE_WRITE16_MEMBER( quiz365_oki_bank2_w );
375   DECLARE_WRITE8_MEMBER( ddenlovr_select_w );
376   DECLARE_READ8_MEMBER( quiz365_input_r );
377   DECLARE_WRITE16_MEMBER( nettoqc_oki_bank_w );
378   DECLARE_WRITE8_MEMBER( hanakanz_oki_bank_w );
379   DECLARE_WRITE8_MEMBER( mjchuuka_oki_bank_w );
380   DECLARE_READ8_MEMBER( hginga_dsw_r );
381   DECLARE_WRITE8_MEMBER( mjflove_okibank_w );
382   DECLARE_WRITE8_MEMBER( jongtei_okibank_w );
383   DECLARE_READ8_MEMBER( seljan2_dsw_r );
384   DECLARE_WRITE8_MEMBER( daimyojn_okibank_w );
385445};
386446
387447VIDEO_START_MEMBER(ddenlovr_state,ddenlovr)
r243074r243075
19161976   AM_RANGE(0x300286, 0x300287) AM_READ(ddenlovr_gfxrom_r)                             // Video Chip
19171977
19181978   AM_RANGE(0x3002c0, 0x3002c1) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)// Sound
1919   AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
1979   AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
19201980   AM_RANGE(0x300340, 0x30035f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
19211981   AM_RANGE(0x300380, 0x300383) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
19221982   AM_RANGE(0x300384, 0x300385) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
r243074r243075
19682028   AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r)                                       // ? must be 78 on startup (not necessary in ddlover)
19692029   AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
19702030   AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r)                             // Video Chip
1971   AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
2031   AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
19722032   AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
19732033   AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
19742034   AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
r243074r243075
20352095   AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w)                         // Coin Counters
20362096   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)                         //
20372097
2038   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
2098   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
20392099   AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
20402100   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
20412101   AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
r243074r243075
20732133   AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w)                         // Coin Counters
20742134   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)                         //
20752135
2076   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
2136   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
20772137   AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
20782138   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
20792139   AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
r243074r243075
21472207   AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r)                                           // ? must be 78 on startup (not necessary in ddlover)
21482208   AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
21492209   AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r)                                 // Video Chip
2150   AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
2210   AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
21512211   AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
21522212   AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
21532213   AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
r243074r243075
22102270   AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w)                         // Coin Counters
22112271   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)                         //
22122272
2213   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
2273   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
22142274   AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
22152275   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
22162276   AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
r243074r243075
22662326   AM_RANGE(0x22, 0x23) AM_READ(rongrong_input2_r)
22672327
22682328   AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
2269   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
2329   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
22702330
22712331   AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
22722332   AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
r243074r243075
23032363
23042364   AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
23052365   AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
2306   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
2366   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
23072367
23082368   AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
23092369   AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
r243074r243075
24572517   AM_RANGE(0x02, 0x02) AM_READNOP     // read just before port 00
24582518   AM_RANGE(0x04, 0x04) AM_NOP                 // read only once at the start
24592519   AM_RANGE(0x06, 0x06) AM_WRITENOP    // almost always 1, sometimes 0
2460   AM_RANGE(0x08, 0x09) AM_DEVWRITE("ymsnd", ym2413_device, write)
2520   AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym2413", ym2413_device, write)
24612521   AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w)
24622522   AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w)
24632523ADDRESS_MAP_END
r243074r243075
27402800   AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w)
27412801   AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w)
27422802   AM_RANGE(0x96, 0x96) AM_READ(hanakanz_rand_r)
2743   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
2803   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
27442804   AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
27452805   AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
27462806ADDRESS_MAP_END
r243074r243075
27562816   AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
27572817   AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
27582818   AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
2759   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
2819   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
27602820   AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
27612821   AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
27622822   AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w)
r243074r243075
27782838   AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
27792839   AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
27802840   AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
2781   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
2841   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
27822842   AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
27832843//  AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
27842844   AM_RANGE(0xb1, 0xb1) AM_READ_PORT("KEYB0")
r243074r243075
28022862   AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
28032863   AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
28042864   AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
2805   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
2865   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
28062866   AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
28072867//  AM_RANGE(0x91, 0x91) AM_READ(hanakanz_keyb_r)
28082868   AM_RANGE(0x91, 0x91) AM_READ_PORT("KEYB0")
r243074r243075
28412901   AM_RANGE(0x94, 0x94) AM_READ_PORT("SYSTEM")
28422902   AM_RANGE(0x95, 0x96) AM_READ(hanakanz_keyb_r)
28432903   AM_RANGE(0x97, 0x97) AM_WRITE(hanakanz_coincounter_w)
2844   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
2904   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
28452905   AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
28462906   AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
28472907ADDRESS_MAP_END
r243074r243075
29693029   AM_RANGE(0x63, 0x63) AM_MIRROR(0xff00) AM_READ_PORT("DSW4")
29703030   AM_RANGE(0x64, 0x64) AM_MIRROR(0xff00) AM_READ_PORT("DSW5")     // DSW 1-4 high bits
29713031   AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
2972   AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym2413_device, write)
3032   AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ym2413", ym2413_device, write)
29733033   AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
29743034   AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
29753035ADDRESS_MAP_END
r243074r243075
30783138   AM_RANGE(0x22, 0x22) AM_READ(mjmyster_coins_r)
30793139   AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
30803140   AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3081   AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
3141   AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
30823142   AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
30833143   AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
30843144   AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
r243074r243075
32433303   AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
32443304   AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w)
32453305   AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
3246   AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
3306   AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
32473307   AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
32483308   AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
32493309   AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
r243074r243075
33663426   AM_RANGE(0x61, 0x61) AM_WRITE(hgokou_input_w)
33673427   AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r)
33683428   AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3369   AM_RANGE(0x82, 0x83) AM_DEVWRITE("ymsnd", ym2413_device, write)
3429   AM_RANGE(0x82, 0x83) AM_DEVWRITE("ym2413", ym2413_device, write)
33703430   AM_RANGE(0x84, 0x84) AM_DEVREAD("aysnd", ay8910_device, data_r)
33713431   AM_RANGE(0x86, 0x86) AM_DEVWRITE("aysnd", ay8910_device, data_w)
33723432   AM_RANGE(0x88, 0x88) AM_DEVWRITE("aysnd", ay8910_device, address_w)
r243074r243075
34093469   AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w)        // ? ack on RTC int
34103470   AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
34113471   AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3412   AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
3472   AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
34133473   AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
34143474   AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
34153475   AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
r243074r243075
35003560   AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r)
35013561   AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w)
35023562   AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3503   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
3563   AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
35043564   AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
35053565   AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
35063566   AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
r243074r243075
35463606   AM_RANGE(0x22, 0x22) AM_READ(mjmywrld_coins_r)
35473607   AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
35483608   AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3549   AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
3609   AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
35503610   AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
35513611   AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
35523612   AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
r243074r243075
36463706   AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w)                         // Coin Counters
36473707   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)                         //
36483708
3649   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
3709   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
36503710   AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff)
36513711   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
36523712   AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
r243074r243075
37373797   AM_RANGE(0x0100, 0x0100) AM_READ_PORT("DSW1")
37383798   AM_RANGE(0x0181, 0x0181) AM_WRITENOP                        // ? int. enable
37393799   AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w)
3740   AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ymsnd", ym2413_device, write)
3800   AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ym2413", ym2413_device, write)
37413801   AM_RANGE(0x0280, 0x028f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
37423802   AM_RANGE(0x0300, 0x0301) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
37433803   AM_RANGE(0x0380, 0x0380) AM_DEVREADWRITE("oki", okim6295_device, read, write)
r243074r243075
37783838   AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
37793839   AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
37803840   AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
3781   AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym2413_device, write)
3841   AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write)
37823842   AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
37833843   AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
37843844ADDRESS_MAP_END
r243074r243075
38413901static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8, ddenlovr_state )
38423902   ADDRESS_MAP_GLOBAL_MASK(0xff)
38433903   AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3844   AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym2413_device, write)
3904   AM_RANGE(0x02, 0x03) AM_DEVWRITE("ym2413", ym2413_device, write)
38453905   AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
38463906   AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w)    // ? ack on RTC int
38473907   AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
r243074r243075
39283988   AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w)
39293989   AM_RANGE(0x80, 0x80) AM_RAM
39303990   AM_RANGE(0x90, 0x90) AM_DEVREADWRITE("oki", okim6295_device, read, write)
3931   AM_RANGE(0x92, 0x93) AM_DEVWRITE("ymsnd", ym2413_device, write)
3991   AM_RANGE(0x92, 0x93) AM_DEVWRITE("ym2413", ym2413_device, write)
39323992   AM_RANGE(0x94, 0x95) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
39333993ADDRESS_MAP_END
39343994
r243074r243075
40004060   AM_RANGE(0x38, 0x38) AM_READNOP         // ? ack or watchdog
40014061   AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
40024062   AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
4003   AM_RANGE(0x50, 0x51) AM_DEVWRITE("ymsnd", ym2413_device, write)
4063   AM_RANGE(0x50, 0x51) AM_DEVWRITE("ym2413", ym2413_device, write)
40044064   AM_RANGE(0x54, 0x54) AM_DEVREADWRITE("oki", okim6295_device, read, write)
40054065   AM_RANGE(0x58, 0x58) AM_DEVWRITE("aysnd", ay8910_device, address_w)
40064066   AM_RANGE(0x5c, 0x5c) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)   // dsw
r243074r243075
41544214   AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    // AY8910
41554215   AM_RANGE( 0x42, 0x42 ) AM_DEVREAD("aysnd", ay8910_device, data_r)     //
41564216   AM_RANGE( 0x44, 0x44 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   //
4157   AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
4217   AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
41584218   AM_RANGE( 0x80, 0x8f ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
41594219   AM_RANGE( 0xa0, 0xa3 ) AM_WRITE(ddenlovr_palette_base_w)    // ddenlovr mixer chip
41604220   AM_RANGE( 0xa4, 0xa7 ) AM_WRITE(ddenlovr_palette_mask_w)
r243074r243075
42264286   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, htengoku_dsw_w))
42274287   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
42284288
4229   MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
4289   MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
42304290   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
42314291
42324292   /* devices */
r243074r243075
43414401   AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r)
43424402   AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r)  // ?
43434403   AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
4344   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
4404   AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
43454405   AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write)
43464406   AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM")
43474407   AM_RANGE(0xaa, 0xaa) AM_READ(daimyojn_keyb1_r)
r243074r243075
93019361   save_item(NAME(m_mjflove_irq_cause));
93029362   save_item(NAME(m_daimyojn_palette_sel));
93039363   save_item(NAME(m_palram));
9304
9305   save_item(NAME(m_irq_count));
93069364}
93079365
93089366MACHINE_RESET_MEMBER(ddenlovr_state,ddenlovr)
r243074r243075
93239381   m_hginga_rombank = 0;
93249382   m_mjflove_irq_cause = 0;
93259383   m_daimyojn_palette_sel = 0;
9326   m_irq_count = 0;
93279384
93289385   m_quiz365_protection[0] = 0;
93299386   m_quiz365_protection[1] = 0;
r243074r243075
94359492   /* sound hardware */
94369493   MCFG_SPEAKER_STANDARD_MONO("mono")
94379494
9438   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
9495   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
94399496   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
94409497
94419498   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 16)  // or /8 ?
r243074r243075
95539610   /* sound hardware */
95549611   MCFG_SPEAKER_STANDARD_MONO("mono")
95559612
9556   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz/8) // 3.579545Mhz, verified
9613   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz/8) // 3.579545Mhz, verified
95579614   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50)
95589615
95599616   MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) // clock frequency verified 1.022MHz, pin 7 verified high
r243074r243075
96379694   /* sound hardware */
96389695   MCFG_SPEAKER_STANDARD_MONO("mono")
96399696
9640   MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
9697   MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
96419698   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
96429699
96439700   MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
r243074r243075
97149771   /* sound hardware */
97159772   MCFG_SPEAKER_STANDARD_MONO("mono")
97169773
9717   MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
9774   MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
97189775   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
97199776
97209777   MCFG_OKIM6295_ADD("oki", 1022720, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
r243074r243075
97609817   /* sound hardware */
97619818   MCFG_SPEAKER_STANDARD_MONO("mono")
97629819
9763   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_37516MHz / 8)
9820   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_37516MHz / 8)
97649821   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
97659822
97669823   MCFG_OKIM6295_ADD("oki", XTAL_28_37516MHz / 28, OKIM6295_PIN7_HIGH)
r243074r243075
1012910186   /* sound hardware */
1013010187   MCFG_SPEAKER_STANDARD_MONO("mono")
1013110188
10132   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
10189   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
1013310190   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1013410191
1013510192   MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH)
r243074r243075
1017210229   /* sound hardware */
1017310230   MCFG_SPEAKER_STANDARD_MONO("mono")
1017410231
10175   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
10232   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
1017610233   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1017710234
1017810235   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
r243074r243075
1021910276   /* sound hardware */
1022010277   MCFG_SPEAKER_STANDARD_MONO("mono")
1022110278
10222   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
10279   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
1022310280   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1022410281
1022510282   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
r243074r243075
1028610343   /* sound hardware */
1028710344   MCFG_SPEAKER_STANDARD_MONO("mono")
1028810345
10289   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
10346   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
1029010347   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1029110348
1029210349   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
r243074r243075
1033610393   /* sound hardware */
1033710394   MCFG_SPEAKER_STANDARD_MONO("mono")
1033810395
10339   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
10396   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
1034010397   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1034110398
1034210399   MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH)
trunk/src/mame/drivers/dynax.c
r243074r243075
7979#include "sound/ay8910.h"
8080#include "sound/2203intf.h"
8181#include "sound/3812intf.h"
82#include "sound/msm5205.h"
83#include "sound/2413intf.h"
8482#include "machine/nvram.h"
8583#include "rendlay.h"
8684
r243074r243075
534532   AM_RANGE( 0x74, 0x74 ) AM_WRITE(dynax_blitter_ack_w)        // Blitter IRQ Ack
535533   AM_RANGE( 0x76, 0x76 ) AM_WRITE(dynax_blit_palbank_w)       // Layers Palettes (High Bit)
536534   AM_RANGE( 0x77, 0x77 ) AM_WRITE(hanamai_layer_half_w)       // half of the interleaved layer to write to
537   AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) // 2 x DSW
535   AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write) // 2 x DSW
538536   AM_RANGE( 0x7a, 0x7b ) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)   // AY8910
539537//  AM_RANGE( 0x7c, 0x7c ) AM_WRITENOP   // CRT Controller
540538//  AM_RANGE( 0x7d, 0x7d ) AM_WRITENOP   //
r243074r243075
556554   AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2")         // DSW3
557555   AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
558556   AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
559   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
557   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
560558   AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r)     // AY8910, DSW1
561559   AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
562560   AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    //
r243074r243075
640638
641639   AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
642640   AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
643   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
641   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
644642
645643   AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r)     // AY8910, DSW1
646644   AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
r243074r243075
780778   AM_RANGE( 0x11, 0x17 ) AM_WRITE(dynax_blitter_rev2_w)       // Blitter
781779   AM_RANGE( 0x20, 0x20 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
782780   AM_RANGE( 0x22, 0x22 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
783   AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
781   AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
784782   AM_RANGE( 0x28, 0x28 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
785783   AM_RANGE( 0x2a, 0x2a ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    //
786784   AM_RANGE( 0x48, 0x48 ) AM_WRITE(dynax_extra_scrollx_w)  // screen scroll X
r243074r243075
819817   AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW1")         // DSW3
820818   AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
821819   AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
822   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
820   AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
823821   AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
824822   AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    //
825823   AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_blit_pen_w)       // Destination Pen
r243074r243075
847845static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state )
848846   ADDRESS_MAP_GLOBAL_MASK(0xff)
849847   AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w)       // Blitter
850   AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)  // 2 x DSW
848   AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write)  // 2 x DSW
851849//  AM_RANGE( 0x12, 0x12 ) AM_WRITENOP   // CRT Controller
852850//  AM_RANGE( 0x13, 0x13 ) AM_WRITENOP   // CRT Controller
853851   AM_RANGE( 0x20, 0x20 ) AM_READ_PORT("P1")               // P1
r243074r243075
893891   AM_RANGE( 0x63, 0x63 ) AM_READ(hanamai_keyboard_0_r)        // P1
894892   AM_RANGE( 0x64, 0x64 ) AM_READ_PORT("DSW0")         // DSW
895893   AM_RANGE( 0x67, 0x67 ) AM_READ_PORT("DSW1")         // DSW
896   AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
894   AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
897895//  AM_RANGE( 0x80, 0x80 ) AM_WRITENOP   // IRQ ack?
898896ADDRESS_MAP_END
899897
r243074r243075
902900   ADDRESS_MAP_GLOBAL_MASK(0xff)
903901   AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
904902   AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
905   AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
903   AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
906904   AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
907905   AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    //
908906   AM_RANGE( 0x10, 0x10 ) AM_WRITE(hanamai_keyboard_w)     // keyboard row select
r243074r243075
10241022   AM_RANGE( 0x10, 0x10 ) AM_WRITE(jantouki_sound_vblank_ack_w)    // VBlank IRQ Ack
10251023   AM_RANGE( 0x21, 0x21 ) AM_DEVREAD("aysnd", ay8910_device, data_r)         // AY8910
10261024   AM_RANGE( 0x22, 0x23 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)   //
1027   AM_RANGE( 0x28, 0x29 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) //
1025   AM_RANGE( 0x28, 0x29 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write) //
10281026   AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w)      // MSM5205 reset
10291027   AM_RANGE( 0x40, 0x40 ) AM_WRITE(adpcm_data_w)               // MSM5205 data
10301028   AM_RANGE( 0x50, 0x50 ) AM_READ(jantouki_soundlatch_status_r)    // Soundlatch status
r243074r243075
10601058   ADDRESS_MAP_GLOBAL_MASK(0xff)
10611059   AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w)  // MSM5205 reset
10621060   AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w)           // MSM5205 data
1063   AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write)        //
1061   AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ym2413", ym2413_device, write)        //
10641062   AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w)   // AY8910
10651063   AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w)    //
10661064   AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //?
r243074r243075
13391337   AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD("aysnd", ay8910_device, data_r)       // AY8910
13401338   AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
13411339   AM_RANGE( 0x10010, 0x10010 ) AM_DEVWRITE("aysnd", ay8910_device, address_w)  //
1342   AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE("ymsnd", ym2413_device, write)      //
1340   AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE("ym2413", ym2413_device, write)      //
13431341   AM_RANGE( 0x10040, 0x10040 ) AM_WRITE(dynax_blit_pen_w)     // Destination Pen
13441342   AM_RANGE( 0x10044, 0x10044 ) AM_WRITE(tenkai_blit_dest_w)       // Destination Layer
13451343   AM_RANGE( 0x10048, 0x10048 ) AM_WRITE(tenkai_blit_palette23_w)  // Layers Palettes
r243074r243075
14811479         case 0x8050:    // CRT controller
14821480         case 0x8051:    return;
14831481
1484         case 0x8070:    downcast<ym2413_device *>(m_ymsnd)->register_port_w(space, 0, data);    return;
1485         case 0x8071:    downcast<ym2413_device *>(m_ymsnd)->data_port_w(space, 0, data);    return;
1482         case 0x8070:    m_ym2413->register_port_w(space, 0, data);    return;
1483         case 0x8071:    m_ym2413->data_port_w(space, 0, data);    return;
14861484
14871485         case 0x8060:    m_keyb = data;  return;
14881486
r243074r243075
39673965
39683966MACHINE_START_MEMBER(dynax_state,dynax)
39693967{
3970   m_ymsnd = machine().device("ymsnd");
3971
39723968   save_item(NAME(m_sound_irq));
39733969   save_item(NAME(m_vblank_irq));
39743970   save_item(NAME(m_blitter_irq));
r243074r243075
40934089   MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8)
40944090   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
40954091
4096   MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
4092   MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
40974093   MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
40984094   MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
40994095   MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW0"))
r243074r243075
41474143   MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
41484144   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
41494145
4150   MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
4146   MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
41514147   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
41524148
41534149   MCFG_SOUND_ADD("msm", MSM5205, 384000)
r243074r243075
41944190   MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
41954191   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
41964192
4197   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz )
4193   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz )
41984194   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
41994195
42004196   MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz )
r243074r243075
42384234   /* sound hardware */
42394235   MCFG_SPEAKER_STANDARD_MONO("mono")
42404236
4241   MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
4237   MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
42424238   MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
42434239   MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
42444240   MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
r243074r243075
42834279   /* sound hardware */
42844280   MCFG_SPEAKER_STANDARD_MONO("mono")
42854281
4286   MCFG_SOUND_ADD("ymsnd", YM2413, 24000000/6)
4282   MCFG_SOUND_ADD("ym2413", YM2413, 24000000/6)
42874283   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
42884284MACHINE_CONFIG_END
42894285
r243074r243075
43824378
43834379   membank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000],  0x8000);
43844380   membank("bank2")->configure_entries(0, 12,   &SOUND[0x8000], 0x8000);
4385
4386   m_top_scr = machine().device("top");
4387   m_bot_scr = machine().device("bottom");
4388
4381   
43894382   MACHINE_START_CALL_MEMBER(dynax);
43904383}
43914384
r243074r243075
44374430   MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8)
44384431   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
44394432
4440   MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
4433   MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
44414434   MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, jantouki_sound_callback))
44424435   MCFG_SOUND_ROUTE(0, "mono", 0.20)
44434436   MCFG_SOUND_ROUTE(1, "mono", 0.20)
r243074r243075
46164609   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
46174610   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
46184611
4619   MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
4612   MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
46204613   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
46214614
46224615   /* devices */
r243074r243075
46874680   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
46884681   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
46894682
4690   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_24MHz / 8) // ?
4683   MCFG_SOUND_ADD("ym2413", YM2413, XTAL_24MHz / 8) // ?
46914684   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
46924685MACHINE_CONFIG_END
46934686
trunk/src/mame/includes/dynax.h
r243074r243075
44
55***************************************************************************/
66#include "machine/msm6242.h"
7#include "sound/2413intf.h"
78#include "sound/msm5205.h"
89#include "sound/okim6295.h"
910
r243074r243075
1213public:
1314   dynax_state(const machine_config &mconfig, device_type type, const char *tag)
1415      : driver_device(mconfig, type, tag),
15         m_dsw_sel16(*this, "dsw_sel16"),
16         m_protection1(*this, "protection1"),
17         m_protection2(*this, "protection2"),
1816         m_maincpu(*this, "maincpu"),
1917         m_soundcpu(*this, "soundcpu"),
18         m_ym2413(*this, "ym2413"),
2019         m_oki(*this, "oki"),
2120         m_msm(*this, "msm"),
2221         m_screen(*this, "screen"),
r243074r243075
2423         m_rtc(*this, "rtc")
2524      { }
2625
26   /* devices */
27   required_device<cpu_device> m_maincpu;
28   optional_device<cpu_device> m_soundcpu;
29   optional_device<ym2413_device> m_ym2413;
30   optional_device<okim6295_device> m_oki;
31   optional_device<msm5205_device> m_msm;
32   optional_device<screen_device> m_screen;
33   required_device<palette_device> m_palette;
34   optional_device<msm6242_device> m_rtc;
35
2736   // up to 8 layers, 2 images per layer (interleaved on screen)
2837   UINT8 *  m_pixmap[8][2];
29   UINT8 *  m_ddenlovr_pixmap[8];
3038
3139   /* irq */
3240   typedef void (dynax_state::*irq_func)();    // some games trigger IRQ at blitter end, some don't
r243074r243075
7684   const int *m_priority_table;
7785   int m_hanamai_priority;
7886
79   /* ddenlovr blitter (TODO: merge with the above, where possible) */
80   int m_extra_layers;
81   int m_ddenlovr_dest_layer;
82   int m_ddenlovr_blit_flip;
83   int m_ddenlovr_blit_x;
84   int m_ddenlovr_blit_y;
85   int m_ddenlovr_blit_address;
86   int m_ddenlovr_blit_pen;
87   int m_ddenlovr_blit_pen_mode;
88   int m_ddenlovr_blitter_irq_flag;
89   int m_ddenlovr_blitter_irq_enable;
90   int m_ddenlovr_rect_width;
91   int m_ddenlovr_rect_height;
92   int m_ddenlovr_clip_width;
93   int m_ddenlovr_clip_height;
94   int m_ddenlovr_line_length;
95   int m_ddenlovr_clip_ctrl;
96   int m_ddenlovr_clip_x;
97   int m_ddenlovr_clip_y;
98   int m_ddenlovr_scroll[8*2];
99   int m_ddenlovr_priority;
100   int m_ddenlovr_priority2;
101   int m_ddenlovr_bgcolor;
102   int m_ddenlovr_bgcolor2;
103   int m_ddenlovr_layer_enable;
104   int m_ddenlovr_layer_enable2;
105   int m_ddenlovr_palette_base[8];
106   int m_ddenlovr_palette_mask[8];
107   int m_ddenlovr_transparency_pen[8];
108   int m_ddenlovr_transparency_mask[8];
109   int m_ddenlovr_blit_latch;
110   int m_ddenlovr_blit_pen_mask;   // not implemented
111   int m_ddenlovr_blit_rom_bits;           // usually 8, 16 in hanakanz
112   const int *m_ddenlovr_blit_commands;
113   int m_ddenlovr_blit_regs[2];
114
11587   /* input */
11688   UINT8 m_input_sel;
11789   UINT8 m_dsw_sel;
r243074r243075
139111   UINT8 m_gekisha_rom_enable;
140112   UINT8 *m_romptr;
141113
142   /* ddenlovr misc (TODO: merge with the above, where possible) */
143   UINT8 m_palram[0x200];
144   int m_okibank;
145   UINT8 m_rongrong_blitter_busy_select;
146
147   optional_shared_ptr<UINT16> m_dsw_sel16;
148   optional_shared_ptr<UINT16> m_protection1;
149   optional_shared_ptr<UINT16> m_protection2;
150   UINT8 m_prot_val;
151   UINT16 m_prot_16;
152   UINT16 m_quiz365_protection[2];
153
154   UINT16 m_mmpanic_leds;  /* A led for each of the 9 buttons */
155   UINT8 m_funkyfig_lockout;
156   UINT8 m_romdata[2];
157   int m_palette_index;
158   UINT8 m_hginga_rombank;
159   UINT8 m_mjflove_irq_cause;
160   UINT8 m_daimyojn_palette_sel;
161
162   int m_irq_count;
163
164
165   /* devices */
166   required_device<cpu_device> m_maincpu;
167   optional_device<cpu_device> m_soundcpu;
168   device_t *m_ymsnd;
169   optional_device<okim6295_device> m_oki;
170   optional_device<msm5205_device> m_msm;
171   optional_device<screen_device> m_screen;
172   required_device<palette_device> m_palette;
173   optional_device<msm6242_device> m_rtc;
174   device_t *m_top_scr;
175   device_t *m_bot_scr;
176114   DECLARE_WRITE8_MEMBER(dynax_vblank_ack_w);
177115   DECLARE_WRITE8_MEMBER(dynax_blitter_ack_w);
178116   DECLARE_WRITE8_MEMBER(jantouki_vblank_ack_w);
r243074r243075
275213   DECLARE_WRITE8_MEMBER(jantouki_blitter2_rev2_w);
276214   DECLARE_WRITE8_MEMBER(hanamai_priority_w);
277215   DECLARE_WRITE8_MEMBER(tenkai_priority_w);
216   
278217   DECLARE_DRIVER_INIT(mjelct3);
279218   DECLARE_DRIVER_INIT(blktouch);
280219   DECLARE_DRIVER_INIT(mjelct3a);
281220   DECLARE_DRIVER_INIT(mjreach);
282221   DECLARE_DRIVER_INIT(maya);
222   
283223   UINT32 screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
284224   UINT32 screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
285225   UINT32 screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
286226   UINT32 screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
287227   UINT32 screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
288228   UINT32 screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
229   
289230   INTERRUPT_GEN_MEMBER(sprtmtch_vblank_interrupt);
290231   INTERRUPT_GEN_MEMBER(jantouki_vblank_interrupt);
291232   INTERRUPT_GEN_MEMBER(jantouki_sound_vblank_interrupt);
292233   INTERRUPT_GEN_MEMBER(yarunara_clock_interrupt);
293234   INTERRUPT_GEN_MEMBER(mjelctrn_vblank_interrupt);
235   
294236   TIMER_DEVICE_CALLBACK_MEMBER(neruton_irq_scanline);
295237   TIMER_DEVICE_CALLBACK_MEMBER(majxtal7_vblank_interrupt);
296238   TIMER_DEVICE_CALLBACK_MEMBER(tenkai_interrupt);
239   
297240   void tenkai_update_rombank();
298241   void gekisha_bank_postload();
242   
299243   DECLARE_WRITE_LINE_MEMBER(sprtmtch_sound_callback);
300244   DECLARE_WRITE_LINE_MEMBER(jantouki_sound_callback);
301245   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
r243074r243075
324268   DECLARE_VIDEO_START(mcnpshnt);
325269   DECLARE_PALETTE_INIT(janyuki);
326270   DECLARE_VIDEO_START(neruton);
271   
327272   inline void blitter_plot_pixel( int layer, int mask, int x, int y, int pen, int wrap, int flags );
328273   int blitter_drawgfx( int layer, int mask, const char *gfx, int src, int pen, int x, int y, int wrap, int flags );
329274   void dynax_blitter_start( int flags );


Previous 199869 Revisions Next


© 1997-2024 The MAME Team