trunk/src/mame/drivers/ddenlovr.c
| r243074 | r243075 | |
| 110 | 110 | #include "cpu/m68000/m68000.h" |
| 111 | 111 | #include "cpu/z80/z80.h" |
| 112 | 112 | #include "sound/ay8910.h" |
| 113 | | #include "sound/okim6295.h" |
| 114 | | #include "sound/2413intf.h" |
| 115 | 113 | #include "machine/msm6242.h" |
| 116 | 114 | #include "machine/nvram.h" |
| 117 | 115 | #include "includes/dynax.h" |
| r243074 | r243075 | |
| 153 | 151 | { |
| 154 | 152 | public: |
| 155 | 153 | 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 | |
| 158 | 159 | |
| 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 | |
| 159 | 219 | DECLARE_MACHINE_START(ddenlovr); |
| 160 | 220 | DECLARE_MACHINE_RESET(ddenlovr); |
| 161 | 221 | DECLARE_VIDEO_START(ddenlovr); |
| r243074 | r243075 | |
| 350 | 410 | DECLARE_VIDEO_START(htengoku); |
| 351 | 411 | DECLARE_WRITE8_MEMBER(htengoku_dsw_w); |
| 352 | 412 | 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 ); |
| 353 | 427 | |
| 354 | 428 | void ddenlovr_flipscreen_w( UINT8 data ); |
| 355 | 429 | void ddenlovr_blit_flip_w( UINT8 data ); |
| r243074 | r243075 | |
| 368 | 442 | void mmpanic_update_leds(); |
| 369 | 443 | void mjchuuka_get_romdata(); |
| 370 | 444 | 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 ); |
| 385 | 445 | }; |
| 386 | 446 | |
| 387 | 447 | VIDEO_START_MEMBER(ddenlovr_state,ddenlovr) |
| r243074 | r243075 | |
| 1916 | 1976 | AM_RANGE(0x300286, 0x300287) AM_READ(ddenlovr_gfxrom_r) // Video Chip |
| 1917 | 1977 | |
| 1918 | 1978 | 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) |
| 1920 | 1980 | AM_RANGE(0x300340, 0x30035f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 1921 | 1981 | AM_RANGE(0x300380, 0x300383) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 1922 | 1982 | AM_RANGE(0x300384, 0x300385) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) |
| r243074 | r243075 | |
| 1968 | 2028 | AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover) |
| 1969 | 2029 | AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w) |
| 1970 | 2030 | 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) |
| 1972 | 2032 | AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 1973 | 2033 | AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 1974 | 2034 | AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1") |
| r243074 | r243075 | |
| 2035 | 2095 | AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters |
| 2036 | 2096 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 2037 | 2097 | |
| 2038 | | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) |
| 2098 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff) |
| 2039 | 2099 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 2040 | 2100 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 2041 | 2101 | AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) |
| r243074 | r243075 | |
| 2073 | 2133 | AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters |
| 2074 | 2134 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 2075 | 2135 | |
| 2076 | | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) |
| 2136 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff) |
| 2077 | 2137 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 2078 | 2138 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 2079 | 2139 | AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) |
| r243074 | r243075 | |
| 2147 | 2207 | AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover) |
| 2148 | 2208 | AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w) |
| 2149 | 2209 | 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) |
| 2151 | 2211 | AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 2152 | 2212 | AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 2153 | 2213 | AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1") |
| r243074 | r243075 | |
| 2210 | 2270 | AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters |
| 2211 | 2271 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 2212 | 2272 | |
| 2213 | | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) |
| 2273 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff) |
| 2214 | 2274 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) |
| 2215 | 2275 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 2216 | 2276 | AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) |
| r243074 | r243075 | |
| 2266 | 2326 | AM_RANGE(0x22, 0x23) AM_READ(rongrong_input2_r) |
| 2267 | 2327 | |
| 2268 | 2328 | 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) |
| 2270 | 2330 | |
| 2271 | 2331 | AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w) |
| 2272 | 2332 | AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w) |
| r243074 | r243075 | |
| 2303 | 2363 | |
| 2304 | 2364 | AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 2305 | 2365 | 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) |
| 2307 | 2367 | |
| 2308 | 2368 | AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w) |
| 2309 | 2369 | AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w) |
| r243074 | r243075 | |
| 2457 | 2517 | AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00 |
| 2458 | 2518 | AM_RANGE(0x04, 0x04) AM_NOP // read only once at the start |
| 2459 | 2519 | 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) |
| 2461 | 2521 | AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 2462 | 2522 | AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| 2463 | 2523 | ADDRESS_MAP_END |
| r243074 | r243075 | |
| 2740 | 2800 | AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w) |
| 2741 | 2801 | AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w) |
| 2742 | 2802 | 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) |
| 2744 | 2804 | AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 2745 | 2805 | AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 2746 | 2806 | ADDRESS_MAP_END |
| r243074 | r243075 | |
| 2756 | 2816 | AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w) |
| 2757 | 2817 | AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w) |
| 2758 | 2818 | 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) |
| 2760 | 2820 | AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM") |
| 2761 | 2821 | AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r) |
| 2762 | 2822 | AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w) |
| r243074 | r243075 | |
| 2778 | 2838 | AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w) |
| 2779 | 2839 | AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w) |
| 2780 | 2840 | 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) |
| 2782 | 2842 | AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM") |
| 2783 | 2843 | // AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r) |
| 2784 | 2844 | AM_RANGE(0xb1, 0xb1) AM_READ_PORT("KEYB0") |
| r243074 | r243075 | |
| 2802 | 2862 | AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w) |
| 2803 | 2863 | AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w) |
| 2804 | 2864 | 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) |
| 2806 | 2866 | AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") |
| 2807 | 2867 | // AM_RANGE(0x91, 0x91) AM_READ(hanakanz_keyb_r) |
| 2808 | 2868 | AM_RANGE(0x91, 0x91) AM_READ_PORT("KEYB0") |
| r243074 | r243075 | |
| 2841 | 2901 | AM_RANGE(0x94, 0x94) AM_READ_PORT("SYSTEM") |
| 2842 | 2902 | AM_RANGE(0x95, 0x96) AM_READ(hanakanz_keyb_r) |
| 2843 | 2903 | 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) |
| 2845 | 2905 | AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 2846 | 2906 | AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 2847 | 2907 | ADDRESS_MAP_END |
| r243074 | r243075 | |
| 2969 | 3029 | AM_RANGE(0x63, 0x63) AM_MIRROR(0xff00) AM_READ_PORT("DSW4") |
| 2970 | 3030 | AM_RANGE(0x64, 0x64) AM_MIRROR(0xff00) AM_READ_PORT("DSW5") // DSW 1-4 high bits |
| 2971 | 3031 | 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) |
| 2973 | 3033 | AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 2974 | 3034 | AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 2975 | 3035 | ADDRESS_MAP_END |
| r243074 | r243075 | |
| 3078 | 3138 | AM_RANGE(0x22, 0x22) AM_READ(mjmyster_coins_r) |
| 3079 | 3139 | AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r) |
| 3080 | 3140 | 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) |
| 3082 | 3142 | AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 3083 | 3143 | AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 3084 | 3144 | AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| r243074 | r243075 | |
| 3243 | 3303 | AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r) |
| 3244 | 3304 | AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) |
| 3245 | 3305 | 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) |
| 3247 | 3307 | AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 3248 | 3308 | AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 3249 | 3309 | AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| r243074 | r243075 | |
| 3366 | 3426 | AM_RANGE(0x61, 0x61) AM_WRITE(hgokou_input_w) |
| 3367 | 3427 | AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r) |
| 3368 | 3428 | 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) |
| 3370 | 3430 | AM_RANGE(0x84, 0x84) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 3371 | 3431 | AM_RANGE(0x86, 0x86) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 3372 | 3432 | AM_RANGE(0x88, 0x88) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| r243074 | r243075 | |
| 3409 | 3469 | AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) // ? ack on RTC int |
| 3410 | 3470 | AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w) |
| 3411 | 3471 | 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) |
| 3413 | 3473 | AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 3414 | 3474 | AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 3415 | 3475 | AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| r243074 | r243075 | |
| 3500 | 3560 | AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r) |
| 3501 | 3561 | AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w) |
| 3502 | 3562 | 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) |
| 3504 | 3564 | AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w) |
| 3505 | 3565 | AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w) |
| 3506 | 3566 | AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w) |
| r243074 | r243075 | |
| 3546 | 3606 | AM_RANGE(0x22, 0x22) AM_READ(mjmywrld_coins_r) |
| 3547 | 3607 | AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r) |
| 3548 | 3608 | 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) |
| 3550 | 3610 | AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 3551 | 3611 | AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 3552 | 3612 | AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| r243074 | r243075 | |
| 3646 | 3706 | AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters |
| 3647 | 3707 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 3648 | 3708 | |
| 3649 | | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) |
| 3709 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff) |
| 3650 | 3710 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff) |
| 3651 | 3711 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) |
| 3652 | 3712 | AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) |
| r243074 | r243075 | |
| 3737 | 3797 | AM_RANGE(0x0100, 0x0100) AM_READ_PORT("DSW1") |
| 3738 | 3798 | AM_RANGE(0x0181, 0x0181) AM_WRITENOP // ? int. enable |
| 3739 | 3799 | 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) |
| 3741 | 3801 | AM_RANGE(0x0280, 0x028f) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 3742 | 3802 | AM_RANGE(0x0300, 0x0301) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 3743 | 3803 | AM_RANGE(0x0380, 0x0380) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| r243074 | r243075 | |
| 3778 | 3838 | AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w) |
| 3779 | 3839 | AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w) |
| 3780 | 3840 | 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) |
| 3782 | 3842 | AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 3783 | 3843 | AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 3784 | 3844 | ADDRESS_MAP_END |
| r243074 | r243075 | |
| 3841 | 3901 | static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8, ddenlovr_state ) |
| 3842 | 3902 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 3843 | 3903 | 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) |
| 3845 | 3905 | AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 3846 | 3906 | AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int |
| 3847 | 3907 | AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w) |
| r243074 | r243075 | |
| 3928 | 3988 | AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w) |
| 3929 | 3989 | AM_RANGE(0x80, 0x80) AM_RAM |
| 3930 | 3990 | 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) |
| 3932 | 3992 | AM_RANGE(0x94, 0x95) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 3933 | 3993 | ADDRESS_MAP_END |
| 3934 | 3994 | |
| r243074 | r243075 | |
| 4000 | 4060 | AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog |
| 4001 | 4061 | AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w) |
| 4002 | 4062 | 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) |
| 4004 | 4064 | AM_RANGE(0x54, 0x54) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 4005 | 4065 | AM_RANGE(0x58, 0x58) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| 4006 | 4066 | AM_RANGE(0x5c, 0x5c) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) // dsw |
| r243074 | r243075 | |
| 4154 | 4214 | AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // AY8910 |
| 4155 | 4215 | AM_RANGE( 0x42, 0x42 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // |
| 4156 | 4216 | 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) // |
| 4158 | 4218 | AM_RANGE( 0x80, 0x8f ) AM_DEVREADWRITE("rtc", msm6242_device, read, write) |
| 4159 | 4219 | AM_RANGE( 0xa0, 0xa3 ) AM_WRITE(ddenlovr_palette_base_w) // ddenlovr mixer chip |
| 4160 | 4220 | AM_RANGE( 0xa4, 0xa7 ) AM_WRITE(ddenlovr_palette_mask_w) |
| r243074 | r243075 | |
| 4226 | 4286 | MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, htengoku_dsw_w)) |
| 4227 | 4287 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4228 | 4288 | |
| 4229 | | MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) |
| 4289 | MCFG_SOUND_ADD("ym2413", YM2413, 3579545) |
| 4230 | 4290 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4231 | 4291 | |
| 4232 | 4292 | /* devices */ |
| r243074 | r243075 | |
| 4341 | 4401 | AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r) |
| 4342 | 4402 | AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ? |
| 4343 | 4403 | 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) |
| 4345 | 4405 | AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 4346 | 4406 | AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM") |
| 4347 | 4407 | AM_RANGE(0xaa, 0xaa) AM_READ(daimyojn_keyb1_r) |
| r243074 | r243075 | |
| 9301 | 9361 | save_item(NAME(m_mjflove_irq_cause)); |
| 9302 | 9362 | save_item(NAME(m_daimyojn_palette_sel)); |
| 9303 | 9363 | save_item(NAME(m_palram)); |
| 9304 | | |
| 9305 | | save_item(NAME(m_irq_count)); |
| 9306 | 9364 | } |
| 9307 | 9365 | |
| 9308 | 9366 | MACHINE_RESET_MEMBER(ddenlovr_state,ddenlovr) |
| r243074 | r243075 | |
| 9323 | 9381 | m_hginga_rombank = 0; |
| 9324 | 9382 | m_mjflove_irq_cause = 0; |
| 9325 | 9383 | m_daimyojn_palette_sel = 0; |
| 9326 | | m_irq_count = 0; |
| 9327 | 9384 | |
| 9328 | 9385 | m_quiz365_protection[0] = 0; |
| 9329 | 9386 | m_quiz365_protection[1] = 0; |
| r243074 | r243075 | |
| 9435 | 9492 | /* sound hardware */ |
| 9436 | 9493 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 9437 | 9494 | |
| 9438 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 9495 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 9439 | 9496 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 9440 | 9497 | |
| 9441 | 9498 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 16) // or /8 ? |
| r243074 | r243075 | |
| 9553 | 9610 | /* sound hardware */ |
| 9554 | 9611 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 9555 | 9612 | |
| 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 |
| 9557 | 9614 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50) |
| 9558 | 9615 | |
| 9559 | 9616 | MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) // clock frequency verified 1.022MHz, pin 7 verified high |
| r243074 | r243075 | |
| 9637 | 9694 | /* sound hardware */ |
| 9638 | 9695 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 9639 | 9696 | |
| 9640 | | MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) |
| 9697 | MCFG_SOUND_ADD("ym2413", YM2413, 3579545) |
| 9641 | 9698 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 9642 | 9699 | |
| 9643 | 9700 | MCFG_SOUND_ADD("aysnd", AY8910, 3579545) |
| r243074 | r243075 | |
| 9714 | 9771 | /* sound hardware */ |
| 9715 | 9772 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 9716 | 9773 | |
| 9717 | | MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) |
| 9774 | MCFG_SOUND_ADD("ym2413", YM2413, 3579545) |
| 9718 | 9775 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 9719 | 9776 | |
| 9720 | 9777 | MCFG_OKIM6295_ADD("oki", 1022720, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified |
| r243074 | r243075 | |
| 9760 | 9817 | /* sound hardware */ |
| 9761 | 9818 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 9762 | 9819 | |
| 9763 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_37516MHz / 8) |
| 9820 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_37516MHz / 8) |
| 9764 | 9821 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 9765 | 9822 | |
| 9766 | 9823 | MCFG_OKIM6295_ADD("oki", XTAL_28_37516MHz / 28, OKIM6295_PIN7_HIGH) |
| r243074 | r243075 | |
| 10129 | 10186 | /* sound hardware */ |
| 10130 | 10187 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 10131 | 10188 | |
| 10132 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 10189 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 10133 | 10190 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 10134 | 10191 | |
| 10135 | 10192 | MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) |
| r243074 | r243075 | |
| 10172 | 10229 | /* sound hardware */ |
| 10173 | 10230 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 10174 | 10231 | |
| 10175 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 10232 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 10176 | 10233 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 10177 | 10234 | |
| 10178 | 10235 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8) |
| r243074 | r243075 | |
| 10219 | 10276 | /* sound hardware */ |
| 10220 | 10277 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 10221 | 10278 | |
| 10222 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 10279 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 10223 | 10280 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 10224 | 10281 | |
| 10225 | 10282 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8) |
| r243074 | r243075 | |
| 10286 | 10343 | /* sound hardware */ |
| 10287 | 10344 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 10288 | 10345 | |
| 10289 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 10346 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 10290 | 10347 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 10291 | 10348 | |
| 10292 | 10349 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8) |
| r243074 | r243075 | |
| 10336 | 10393 | /* sound hardware */ |
| 10337 | 10394 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 10338 | 10395 | |
| 10339 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8) |
| 10396 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) |
| 10340 | 10397 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 10341 | 10398 | |
| 10342 | 10399 | MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) |
trunk/src/mame/drivers/dynax.c
| r243074 | r243075 | |
| 79 | 79 | #include "sound/ay8910.h" |
| 80 | 80 | #include "sound/2203intf.h" |
| 81 | 81 | #include "sound/3812intf.h" |
| 82 | | #include "sound/msm5205.h" |
| 83 | | #include "sound/2413intf.h" |
| 84 | 82 | #include "machine/nvram.h" |
| 85 | 83 | #include "rendlay.h" |
| 86 | 84 | |
| r243074 | r243075 | |
| 534 | 532 | AM_RANGE( 0x74, 0x74 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack |
| 535 | 533 | AM_RANGE( 0x76, 0x76 ) AM_WRITE(dynax_blit_palbank_w) // Layers Palettes (High Bit) |
| 536 | 534 | 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 |
| 538 | 536 | AM_RANGE( 0x7a, 0x7b ) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) // AY8910 |
| 539 | 537 | // AM_RANGE( 0x7c, 0x7c ) AM_WRITENOP // CRT Controller |
| 540 | 538 | // AM_RANGE( 0x7d, 0x7d ) AM_WRITENOP // |
| r243074 | r243075 | |
| 556 | 554 | AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2") // DSW3 |
| 557 | 555 | AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 558 | 556 | 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) // |
| 560 | 558 | AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1 |
| 561 | 559 | AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| 562 | 560 | AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // |
| r243074 | r243075 | |
| 640 | 638 | |
| 641 | 639 | AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 642 | 640 | 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) // |
| 644 | 642 | |
| 645 | 643 | AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1 |
| 646 | 644 | AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| r243074 | r243075 | |
| 780 | 778 | AM_RANGE( 0x11, 0x17 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter |
| 781 | 779 | AM_RANGE( 0x20, 0x20 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 782 | 780 | 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) // |
| 784 | 782 | AM_RANGE( 0x28, 0x28 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| 785 | 783 | AM_RANGE( 0x2a, 0x2a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // |
| 786 | 784 | AM_RANGE( 0x48, 0x48 ) AM_WRITE(dynax_extra_scrollx_w) // screen scroll X |
| r243074 | r243075 | |
| 819 | 817 | AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW1") // DSW3 |
| 820 | 818 | AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 821 | 819 | 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) // |
| 823 | 821 | AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| 824 | 822 | AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // |
| 825 | 823 | AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen |
| r243074 | r243075 | |
| 847 | 845 | static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state ) |
| 848 | 846 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 849 | 847 | 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 |
| 851 | 849 | // AM_RANGE( 0x12, 0x12 ) AM_WRITENOP // CRT Controller |
| 852 | 850 | // AM_RANGE( 0x13, 0x13 ) AM_WRITENOP // CRT Controller |
| 853 | 851 | AM_RANGE( 0x20, 0x20 ) AM_READ_PORT("P1") // P1 |
| r243074 | r243075 | |
| 893 | 891 | AM_RANGE( 0x63, 0x63 ) AM_READ(hanamai_keyboard_0_r) // P1 |
| 894 | 892 | AM_RANGE( 0x64, 0x64 ) AM_READ_PORT("DSW0") // DSW |
| 895 | 893 | 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) // |
| 897 | 895 | // AM_RANGE( 0x80, 0x80 ) AM_WRITENOP // IRQ ack? |
| 898 | 896 | ADDRESS_MAP_END |
| 899 | 897 | |
| r243074 | r243075 | |
| 902 | 900 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 903 | 901 | AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 904 | 902 | 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) // |
| 906 | 904 | AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| 907 | 905 | AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // |
| 908 | 906 | AM_RANGE( 0x10, 0x10 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select |
| r243074 | r243075 | |
| 1024 | 1022 | AM_RANGE( 0x10, 0x10 ) AM_WRITE(jantouki_sound_vblank_ack_w) // VBlank IRQ Ack |
| 1025 | 1023 | AM_RANGE( 0x21, 0x21 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910 |
| 1026 | 1024 | 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) // |
| 1028 | 1026 | AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 1029 | 1027 | AM_RANGE( 0x40, 0x40 ) AM_WRITE(adpcm_data_w) // MSM5205 data |
| 1030 | 1028 | AM_RANGE( 0x50, 0x50 ) AM_READ(jantouki_soundlatch_status_r) // Soundlatch status |
| r243074 | r243075 | |
| 1060 | 1058 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 1061 | 1059 | AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset |
| 1062 | 1060 | 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) // |
| 1064 | 1062 | AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910 |
| 1065 | 1063 | AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // |
| 1066 | 1064 | AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //? |
| r243074 | r243075 | |
| 1339 | 1337 | AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910 |
| 1340 | 1338 | AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // |
| 1341 | 1339 | 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) // |
| 1343 | 1341 | AM_RANGE( 0x10040, 0x10040 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen |
| 1344 | 1342 | AM_RANGE( 0x10044, 0x10044 ) AM_WRITE(tenkai_blit_dest_w) // Destination Layer |
| 1345 | 1343 | AM_RANGE( 0x10048, 0x10048 ) AM_WRITE(tenkai_blit_palette23_w) // Layers Palettes |
| r243074 | r243075 | |
| 1481 | 1479 | case 0x8050: // CRT controller |
| 1482 | 1480 | case 0x8051: return; |
| 1483 | 1481 | |
| 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; |
| 1486 | 1484 | |
| 1487 | 1485 | case 0x8060: m_keyb = data; return; |
| 1488 | 1486 | |
| r243074 | r243075 | |
| 3967 | 3965 | |
| 3968 | 3966 | MACHINE_START_MEMBER(dynax_state,dynax) |
| 3969 | 3967 | { |
| 3970 | | m_ymsnd = machine().device("ymsnd"); |
| 3971 | | |
| 3972 | 3968 | save_item(NAME(m_sound_irq)); |
| 3973 | 3969 | save_item(NAME(m_vblank_irq)); |
| 3974 | 3970 | save_item(NAME(m_blitter_irq)); |
| r243074 | r243075 | |
| 4093 | 4089 | MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8) |
| 4094 | 4090 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4095 | 4091 | |
| 4096 | | MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8) |
| 4092 | MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8) |
| 4097 | 4093 | MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback)) |
| 4098 | 4094 | MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1")) |
| 4099 | 4095 | MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW0")) |
| r243074 | r243075 | |
| 4147 | 4143 | MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0")) |
| 4148 | 4144 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4149 | 4145 | |
| 4150 | | MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) |
| 4146 | MCFG_SOUND_ADD("ym2413", YM2413, 3579545) |
| 4151 | 4147 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4152 | 4148 | |
| 4153 | 4149 | MCFG_SOUND_ADD("msm", MSM5205, 384000) |
| r243074 | r243075 | |
| 4194 | 4190 | MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0")) |
| 4195 | 4191 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4196 | 4192 | |
| 4197 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz ) |
| 4193 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz ) |
| 4198 | 4194 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4199 | 4195 | |
| 4200 | 4196 | MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz ) |
| r243074 | r243075 | |
| 4238 | 4234 | /* sound hardware */ |
| 4239 | 4235 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 4240 | 4236 | |
| 4241 | | MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8) |
| 4237 | MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8) |
| 4242 | 4238 | MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback)) |
| 4243 | 4239 | MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0")) |
| 4244 | 4240 | MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1")) |
| r243074 | r243075 | |
| 4283 | 4279 | /* sound hardware */ |
| 4284 | 4280 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 4285 | 4281 | |
| 4286 | | MCFG_SOUND_ADD("ymsnd", YM2413, 24000000/6) |
| 4282 | MCFG_SOUND_ADD("ym2413", YM2413, 24000000/6) |
| 4287 | 4283 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4288 | 4284 | MACHINE_CONFIG_END |
| 4289 | 4285 | |
| r243074 | r243075 | |
| 4382 | 4378 | |
| 4383 | 4379 | membank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000], 0x8000); |
| 4384 | 4380 | 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 | |
| 4389 | 4382 | MACHINE_START_CALL_MEMBER(dynax); |
| 4390 | 4383 | } |
| 4391 | 4384 | |
| r243074 | r243075 | |
| 4437 | 4430 | MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8) |
| 4438 | 4431 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4439 | 4432 | |
| 4440 | | MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8) |
| 4433 | MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8) |
| 4441 | 4434 | MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, jantouki_sound_callback)) |
| 4442 | 4435 | MCFG_SOUND_ROUTE(0, "mono", 0.20) |
| 4443 | 4436 | MCFG_SOUND_ROUTE(1, "mono", 0.20) |
| r243074 | r243075 | |
| 4616 | 4609 | MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w)) |
| 4617 | 4610 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4618 | 4611 | |
| 4619 | | MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) |
| 4612 | MCFG_SOUND_ADD("ym2413", YM2413, 3579545) |
| 4620 | 4613 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4621 | 4614 | |
| 4622 | 4615 | /* devices */ |
| r243074 | r243075 | |
| 4687 | 4680 | MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w)) |
| 4688 | 4681 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 4689 | 4682 | |
| 4690 | | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_24MHz / 8) // ? |
| 4683 | MCFG_SOUND_ADD("ym2413", YM2413, XTAL_24MHz / 8) // ? |
| 4691 | 4684 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 4692 | 4685 | MACHINE_CONFIG_END |
| 4693 | 4686 | |