dynax, ddenlovr: small cleanups, moved ddenlovr specific variables into ddenlovr_state (nw)

This commit is contained in:
Osso13 2015-01-23 18:54:07 +01:00
parent 20c32e053f
commit ea0ec6567b
3 changed files with 159 additions and 164 deletions

View File

@ -110,8 +110,6 @@ Notes:
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "sound/ay8910.h"
#include "sound/okim6295.h"
#include "sound/2413intf.h"
#include "machine/msm6242.h"
#include "machine/nvram.h"
#include "includes/dynax.h"
@ -153,8 +151,70 @@ class ddenlovr_state : public dynax_state
{
public:
ddenlovr_state(const machine_config &mconfig, device_type type, const char *tag)
: dynax_state(mconfig, type, tag)
{ }
: dynax_state(mconfig, type, tag),
m_dsw_sel16(*this, "dsw_sel16"),
m_protection1(*this, "protection1"),
m_protection2(*this, "protection2") { }
optional_shared_ptr<UINT16> m_dsw_sel16;
optional_shared_ptr<UINT16> m_protection1;
optional_shared_ptr<UINT16> m_protection2;
UINT8 * m_ddenlovr_pixmap[8];
/* blitter (TODO: merge with the dynax.h, where possible) */
int m_extra_layers;
int m_ddenlovr_dest_layer;
int m_ddenlovr_blit_flip;
int m_ddenlovr_blit_x;
int m_ddenlovr_blit_y;
int m_ddenlovr_blit_address;
int m_ddenlovr_blit_pen;
int m_ddenlovr_blit_pen_mode;
int m_ddenlovr_blitter_irq_flag;
int m_ddenlovr_blitter_irq_enable;
int m_ddenlovr_rect_width;
int m_ddenlovr_rect_height;
int m_ddenlovr_clip_width;
int m_ddenlovr_clip_height;
int m_ddenlovr_line_length;
int m_ddenlovr_clip_ctrl;
int m_ddenlovr_clip_x;
int m_ddenlovr_clip_y;
int m_ddenlovr_scroll[8*2];
int m_ddenlovr_priority;
int m_ddenlovr_priority2;
int m_ddenlovr_bgcolor;
int m_ddenlovr_bgcolor2;
int m_ddenlovr_layer_enable;
int m_ddenlovr_layer_enable2;
int m_ddenlovr_palette_base[8];
int m_ddenlovr_palette_mask[8];
int m_ddenlovr_transparency_pen[8];
int m_ddenlovr_transparency_mask[8];
int m_ddenlovr_blit_latch;
int m_ddenlovr_blit_pen_mask; // not implemented
int m_ddenlovr_blit_rom_bits; // usually 8, 16 in hanakanz
const int *m_ddenlovr_blit_commands;
int m_ddenlovr_blit_regs[2];
/* ddenlovr misc (TODO: merge with dynax.h, where possible) */
UINT8 m_palram[0x200];
int m_okibank;
UINT8 m_rongrong_blitter_busy_select;
UINT8 m_prot_val;
UINT16 m_prot_16;
UINT16 m_quiz365_protection[2];
UINT16 m_mmpanic_leds; /* A led for each of the 9 buttons */
UINT8 m_funkyfig_lockout;
UINT8 m_romdata[2];
int m_palette_index;
UINT8 m_hginga_rombank;
UINT8 m_mjflove_irq_cause;
UINT8 m_daimyojn_palette_sel;
DECLARE_MACHINE_START(ddenlovr);
DECLARE_MACHINE_RESET(ddenlovr);
@ -350,6 +410,20 @@ public:
DECLARE_VIDEO_START(htengoku);
DECLARE_WRITE8_MEMBER(htengoku_dsw_w);
DECLARE_READ8_MEMBER(htengoku_dsw_r);
DECLARE_WRITE8_MEMBER( quizchq_oki_bank_w );
DECLARE_WRITE16_MEMBER( ddenlovr_oki_bank_w );
DECLARE_WRITE16_MEMBER( quiz365_oki_bank1_w );
DECLARE_WRITE16_MEMBER( quiz365_oki_bank2_w );
DECLARE_WRITE8_MEMBER( ddenlovr_select_w );
DECLARE_READ8_MEMBER( quiz365_input_r );
DECLARE_WRITE16_MEMBER( nettoqc_oki_bank_w );
DECLARE_WRITE8_MEMBER( hanakanz_oki_bank_w );
DECLARE_WRITE8_MEMBER( mjchuuka_oki_bank_w );
DECLARE_READ8_MEMBER( hginga_dsw_r );
DECLARE_WRITE8_MEMBER( mjflove_okibank_w );
DECLARE_WRITE8_MEMBER( jongtei_okibank_w );
DECLARE_READ8_MEMBER( seljan2_dsw_r );
DECLARE_WRITE8_MEMBER( daimyojn_okibank_w );
void ddenlovr_flipscreen_w( UINT8 data );
void ddenlovr_blit_flip_w( UINT8 data );
@ -368,20 +442,6 @@ public:
void mmpanic_update_leds();
void mjchuuka_get_romdata();
UINT8 hgokou_player_r( int player );
DECLARE_WRITE8_MEMBER( quizchq_oki_bank_w );
DECLARE_WRITE16_MEMBER( ddenlovr_oki_bank_w );
DECLARE_WRITE16_MEMBER( quiz365_oki_bank1_w );
DECLARE_WRITE16_MEMBER( quiz365_oki_bank2_w );
DECLARE_WRITE8_MEMBER( ddenlovr_select_w );
DECLARE_READ8_MEMBER( quiz365_input_r );
DECLARE_WRITE16_MEMBER( nettoqc_oki_bank_w );
DECLARE_WRITE8_MEMBER( hanakanz_oki_bank_w );
DECLARE_WRITE8_MEMBER( mjchuuka_oki_bank_w );
DECLARE_READ8_MEMBER( hginga_dsw_r );
DECLARE_WRITE8_MEMBER( mjflove_okibank_w );
DECLARE_WRITE8_MEMBER( jongtei_okibank_w );
DECLARE_READ8_MEMBER( seljan2_dsw_r );
DECLARE_WRITE8_MEMBER( daimyojn_okibank_w );
};
VIDEO_START_MEMBER(ddenlovr_state,ddenlovr)
@ -1916,7 +1976,7 @@ static ADDRESS_MAP_START( quiz365_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300286, 0x300287) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3002c0, 0x3002c1) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)// Sound
AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0x300340, 0x30035f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300380, 0x300383) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300384, 0x300385) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -1968,7 +2028,7 @@ static ADDRESS_MAP_START( ddenlovj_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
@ -2035,7 +2095,7 @@ static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2073,7 +2133,7 @@ static ADDRESS_MAP_START( ddenlovr_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2147,7 +2207,7 @@ static ADDRESS_MAP_START( nettoqc_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
@ -2210,7 +2270,7 @@ static ADDRESS_MAP_START( ultrchmp_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2266,7 +2326,7 @@ static ADDRESS_MAP_START( quizchq_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x23) AM_READ(rongrong_input2_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
@ -2303,7 +2363,7 @@ static ADDRESS_MAP_START( rongrong_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
@ -2457,7 +2517,7 @@ static ADDRESS_MAP_START( mmpanic_sound_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00
AM_RANGE(0x04, 0x04) AM_NOP // read only once at the start
AM_RANGE(0x06, 0x06) AM_WRITENOP // almost always 1, sometimes 0
AM_RANGE(0x08, 0x09) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w)
ADDRESS_MAP_END
@ -2740,7 +2800,7 @@ static ADDRESS_MAP_START( hanakanz_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w)
AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w)
AM_RANGE(0x96, 0x96) AM_READ(hanakanz_rand_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -2756,7 +2816,7 @@ static ADDRESS_MAP_START( hkagerou_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w)
@ -2778,7 +2838,7 @@ static ADDRESS_MAP_START( kotbinyo_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
// AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
AM_RANGE(0xb1, 0xb1) AM_READ_PORT("KEYB0")
@ -2802,7 +2862,7 @@ static ADDRESS_MAP_START( kotbinsp_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
// AM_RANGE(0x91, 0x91) AM_READ(hanakanz_keyb_r)
AM_RANGE(0x91, 0x91) AM_READ_PORT("KEYB0")
@ -2841,7 +2901,7 @@ static ADDRESS_MAP_START( mjreach1_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x94, 0x94) AM_READ_PORT("SYSTEM")
AM_RANGE(0x95, 0x96) AM_READ(hanakanz_keyb_r)
AM_RANGE(0x97, 0x97) AM_WRITE(hanakanz_coincounter_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -2969,7 +3029,7 @@ static ADDRESS_MAP_START( mjchuuka_portmap, AS_IO, 8, ddenlovr_state ) // 16
AM_RANGE(0x63, 0x63) AM_MIRROR(0xff00) AM_READ_PORT("DSW4")
AM_RANGE(0x64, 0x64) AM_MIRROR(0xff00) AM_READ_PORT("DSW5") // DSW 1-4 high bits
AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
ADDRESS_MAP_END
@ -3078,7 +3138,7 @@ static ADDRESS_MAP_START( mjmyster_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x22) AM_READ(mjmyster_coins_r)
AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3243,7 +3303,7 @@ static ADDRESS_MAP_START( hginga_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w)
AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3366,7 +3426,7 @@ static ADDRESS_MAP_START( hgokou_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x61, 0x61) AM_WRITE(hgokou_input_w)
AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x82, 0x83) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x82, 0x83) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x84, 0x84) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x86, 0x86) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x88, 0x88) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3409,7 +3469,7 @@ static ADDRESS_MAP_START( hgokbang_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) // ? ack on RTC int
AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3500,7 +3560,7 @@ static ADDRESS_MAP_START( hparadis_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r)
AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
@ -3546,7 +3606,7 @@ static ADDRESS_MAP_START( mjmywrld_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x22) AM_READ(mjmywrld_coins_r)
AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3646,7 +3706,7 @@ static ADDRESS_MAP_START( akamaru_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -3737,7 +3797,7 @@ static ADDRESS_MAP_START( mjflove_portmap, AS_IO, 8, ddenlovr_state ) // 16 bit
AM_RANGE(0x0100, 0x0100) AM_READ_PORT("DSW1")
AM_RANGE(0x0181, 0x0181) AM_WRITENOP // ? int. enable
AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w)
AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x0280, 0x028f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0x0300, 0x0301) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0x0380, 0x0380) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@ -3778,7 +3838,7 @@ static ADDRESS_MAP_START( jongtei_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -3841,7 +3901,7 @@ WRITE8_MEMBER(ddenlovr_state::sryudens_rambank_w)
static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8, ddenlovr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
@ -3928,7 +3988,7 @@ static ADDRESS_MAP_START( janshinp_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w)
AM_RANGE(0x80, 0x80) AM_RAM
AM_RANGE(0x90, 0x90) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x92, 0x93) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x92, 0x93) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x94, 0x95) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
ADDRESS_MAP_END
@ -4000,7 +4060,7 @@ static ADDRESS_MAP_START( seljan2_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
AM_RANGE(0x50, 0x51) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x50, 0x51) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0x54, 0x54) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x58, 0x58) AM_DEVWRITE("aysnd", ay8910_device, address_w)
AM_RANGE(0x5c, 0x5c) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) // dsw
@ -4154,7 +4214,7 @@ static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8, ddenlovr_state )
AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // AY8910
AM_RANGE( 0x42, 0x42 ) AM_DEVREAD("aysnd", ay8910_device, data_r) //
AM_RANGE( 0x44, 0x44 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x80, 0x8f ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE( 0xa0, 0xa3 ) AM_WRITE(ddenlovr_palette_base_w) // ddenlovr mixer chip
AM_RANGE( 0xa4, 0xa7 ) AM_WRITE(ddenlovr_palette_mask_w)
@ -4226,7 +4286,7 @@ static MACHINE_CONFIG_START( htengoku, ddenlovr_state )
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, htengoku_dsw_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* devices */
@ -4341,7 +4401,7 @@ static ADDRESS_MAP_START( daimyojn_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ?
AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM")
AM_RANGE(0xaa, 0xaa) AM_READ(daimyojn_keyb1_r)
@ -9301,8 +9361,6 @@ MACHINE_START_MEMBER(ddenlovr_state,ddenlovr)
save_item(NAME(m_mjflove_irq_cause));
save_item(NAME(m_daimyojn_palette_sel));
save_item(NAME(m_palram));
save_item(NAME(m_irq_count));
}
MACHINE_RESET_MEMBER(ddenlovr_state,ddenlovr)
@ -9323,7 +9381,6 @@ MACHINE_RESET_MEMBER(ddenlovr_state,ddenlovr)
m_hginga_rombank = 0;
m_mjflove_irq_cause = 0;
m_daimyojn_palette_sel = 0;
m_irq_count = 0;
m_quiz365_protection[0] = 0;
m_quiz365_protection[1] = 0;
@ -9435,7 +9492,7 @@ static MACHINE_CONFIG_START( ddenlovr, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 16) // or /8 ?
@ -9553,7 +9610,7 @@ static MACHINE_CONFIG_START( quizchq, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz/8) // 3.579545Mhz, verified
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz/8) // 3.579545Mhz, verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50)
MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) // clock frequency verified 1.022MHz, pin 7 verified high
@ -9637,7 +9694,7 @@ static MACHINE_CONFIG_START( mmpanic, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
@ -9714,7 +9771,7 @@ static MACHINE_CONFIG_START( hanakanz, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", 1022720, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
@ -9760,7 +9817,7 @@ static MACHINE_CONFIG_START( kotbinyo, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_37516MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_37516MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_28_37516MHz / 28, OKIM6295_PIN7_HIGH)
@ -10129,7 +10186,7 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH)
@ -10172,7 +10229,7 @@ static MACHINE_CONFIG_START( sryudens, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
@ -10219,7 +10276,7 @@ static MACHINE_CONFIG_START( janshinp, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
@ -10286,7 +10343,7 @@ static MACHINE_CONFIG_START( seljan2, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
@ -10336,7 +10393,7 @@ static MACHINE_CONFIG_START( daimyojn, ddenlovr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH)

View File

@ -79,8 +79,6 @@ TODO:
#include "sound/ay8910.h"
#include "sound/2203intf.h"
#include "sound/3812intf.h"
#include "sound/msm5205.h"
#include "sound/2413intf.h"
#include "machine/nvram.h"
#include "rendlay.h"
@ -534,7 +532,7 @@ static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x74, 0x74 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x76, 0x76 ) AM_WRITE(dynax_blit_palbank_w) // Layers Palettes (High Bit)
AM_RANGE( 0x77, 0x77 ) AM_WRITE(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) // 2 x DSW
AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write) // 2 x DSW
AM_RANGE( 0x7a, 0x7b ) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) // AY8910
// AM_RANGE( 0x7c, 0x7c ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x7d, 0x7d ) AM_WRITENOP //
@ -556,7 +554,7 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2") // DSW3
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
@ -640,7 +638,7 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
@ -780,7 +778,7 @@ static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x11, 0x17 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0x20, 0x20 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x22, 0x22 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x28, 0x28 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x2a, 0x2a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x48, 0x48 ) AM_WRITE(dynax_extra_scrollx_w) // screen scroll X
@ -819,7 +817,7 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW1") // DSW3
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
@ -847,7 +845,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) // 2 x DSW
AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write) // 2 x DSW
// AM_RANGE( 0x12, 0x12 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x13, 0x13 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x20, 0x20 ) AM_READ_PORT("P1") // P1
@ -893,7 +891,7 @@ static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x63, 0x63 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x64, 0x64 ) AM_READ_PORT("DSW0") // DSW
AM_RANGE( 0x67, 0x67 ) AM_READ_PORT("DSW1") // DSW
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
// AM_RANGE( 0x80, 0x80 ) AM_WRITENOP // IRQ ack?
ADDRESS_MAP_END
@ -902,7 +900,7 @@ static ADDRESS_MAP_START( nanajign_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x10, 0x10 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
@ -1024,7 +1022,7 @@ static ADDRESS_MAP_START( jantouki_sound_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x10, 0x10 ) AM_WRITE(jantouki_sound_vblank_ack_w) // VBlank IRQ Ack
AM_RANGE( 0x21, 0x21 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910
AM_RANGE( 0x22, 0x23 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) //
AM_RANGE( 0x28, 0x29 ) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) //
AM_RANGE( 0x28, 0x29 ) AM_DEVREADWRITE("ym2203", ym2203_device, read, write) //
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x40, 0x40 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x50, 0x50 ) AM_READ(jantouki_soundlatch_status_r) // Soundlatch status
@ -1060,7 +1058,7 @@ static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //?
@ -1339,7 +1337,7 @@ static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910
AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
AM_RANGE( 0x10010, 0x10010 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
AM_RANGE( 0x10040, 0x10040 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x10044, 0x10044 ) AM_WRITE(tenkai_blit_dest_w) // Destination Layer
AM_RANGE( 0x10048, 0x10048 ) AM_WRITE(tenkai_blit_palette23_w) // Layers Palettes
@ -1481,8 +1479,8 @@ WRITE8_MEMBER(dynax_state::gekisha_8000_w)
case 0x8050: // CRT controller
case 0x8051: return;
case 0x8070: downcast<ym2413_device *>(m_ymsnd)->register_port_w(space, 0, data); return;
case 0x8071: downcast<ym2413_device *>(m_ymsnd)->data_port_w(space, 0, data); return;
case 0x8070: m_ym2413->register_port_w(space, 0, data); return;
case 0x8071: m_ym2413->data_port_w(space, 0, data); return;
case 0x8060: m_keyb = data; return;
@ -3967,8 +3965,6 @@ INPUT_PORTS_END
MACHINE_START_MEMBER(dynax_state,dynax)
{
m_ymsnd = machine().device("ymsnd");
save_item(NAME(m_sound_irq));
save_item(NAME(m_vblank_irq));
save_item(NAME(m_blitter_irq));
@ -4093,7 +4089,7 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW0"))
@ -4147,7 +4143,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@ -4194,7 +4190,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz )
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz )
@ -4238,7 +4234,7 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
@ -4283,7 +4279,7 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, 24000000/6)
MCFG_SOUND_ADD("ym2413", YM2413, 24000000/6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -4382,10 +4378,7 @@ MACHINE_START_MEMBER(dynax_state,jantouki)
membank("bank1")->configure_entries(0, 0x10, &MAIN[0x8000], 0x8000);
membank("bank2")->configure_entries(0, 12, &SOUND[0x8000], 0x8000);
m_top_scr = machine().device("top");
m_bot_scr = machine().device("bottom");
MACHINE_START_CALL_MEMBER(dynax);
}
@ -4437,7 +4430,7 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_SOUND_ADD("ym2203", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, jantouki_sound_callback))
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
@ -4616,7 +4609,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* devices */
@ -4687,7 +4680,7 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_24MHz / 8) // ?
MCFG_SOUND_ADD("ym2413", YM2413, XTAL_24MHz / 8) // ?
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -4,6 +4,7 @@
***************************************************************************/
#include "machine/msm6242.h"
#include "sound/2413intf.h"
#include "sound/msm5205.h"
#include "sound/okim6295.h"
@ -12,11 +13,9 @@ class dynax_state : public driver_device
public:
dynax_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_dsw_sel16(*this, "dsw_sel16"),
m_protection1(*this, "protection1"),
m_protection2(*this, "protection2"),
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"),
m_ym2413(*this, "ym2413"),
m_oki(*this, "oki"),
m_msm(*this, "msm"),
m_screen(*this, "screen"),
@ -24,9 +23,18 @@ public:
m_rtc(*this, "rtc")
{ }
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_soundcpu;
optional_device<ym2413_device> m_ym2413;
optional_device<okim6295_device> m_oki;
optional_device<msm5205_device> m_msm;
optional_device<screen_device> m_screen;
required_device<palette_device> m_palette;
optional_device<msm6242_device> m_rtc;
// up to 8 layers, 2 images per layer (interleaved on screen)
UINT8 * m_pixmap[8][2];
UINT8 * m_ddenlovr_pixmap[8];
/* irq */
typedef void (dynax_state::*irq_func)(); // some games trigger IRQ at blitter end, some don't
@ -76,42 +84,6 @@ public:
const int *m_priority_table;
int m_hanamai_priority;
/* ddenlovr blitter (TODO: merge with the above, where possible) */
int m_extra_layers;
int m_ddenlovr_dest_layer;
int m_ddenlovr_blit_flip;
int m_ddenlovr_blit_x;
int m_ddenlovr_blit_y;
int m_ddenlovr_blit_address;
int m_ddenlovr_blit_pen;
int m_ddenlovr_blit_pen_mode;
int m_ddenlovr_blitter_irq_flag;
int m_ddenlovr_blitter_irq_enable;
int m_ddenlovr_rect_width;
int m_ddenlovr_rect_height;
int m_ddenlovr_clip_width;
int m_ddenlovr_clip_height;
int m_ddenlovr_line_length;
int m_ddenlovr_clip_ctrl;
int m_ddenlovr_clip_x;
int m_ddenlovr_clip_y;
int m_ddenlovr_scroll[8*2];
int m_ddenlovr_priority;
int m_ddenlovr_priority2;
int m_ddenlovr_bgcolor;
int m_ddenlovr_bgcolor2;
int m_ddenlovr_layer_enable;
int m_ddenlovr_layer_enable2;
int m_ddenlovr_palette_base[8];
int m_ddenlovr_palette_mask[8];
int m_ddenlovr_transparency_pen[8];
int m_ddenlovr_transparency_mask[8];
int m_ddenlovr_blit_latch;
int m_ddenlovr_blit_pen_mask; // not implemented
int m_ddenlovr_blit_rom_bits; // usually 8, 16 in hanakanz
const int *m_ddenlovr_blit_commands;
int m_ddenlovr_blit_regs[2];
/* input */
UINT8 m_input_sel;
UINT8 m_dsw_sel;
@ -139,40 +111,6 @@ public:
UINT8 m_gekisha_rom_enable;
UINT8 *m_romptr;
/* ddenlovr misc (TODO: merge with the above, where possible) */
UINT8 m_palram[0x200];
int m_okibank;
UINT8 m_rongrong_blitter_busy_select;
optional_shared_ptr<UINT16> m_dsw_sel16;
optional_shared_ptr<UINT16> m_protection1;
optional_shared_ptr<UINT16> m_protection2;
UINT8 m_prot_val;
UINT16 m_prot_16;
UINT16 m_quiz365_protection[2];
UINT16 m_mmpanic_leds; /* A led for each of the 9 buttons */
UINT8 m_funkyfig_lockout;
UINT8 m_romdata[2];
int m_palette_index;
UINT8 m_hginga_rombank;
UINT8 m_mjflove_irq_cause;
UINT8 m_daimyojn_palette_sel;
int m_irq_count;
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_soundcpu;
device_t *m_ymsnd;
optional_device<okim6295_device> m_oki;
optional_device<msm5205_device> m_msm;
optional_device<screen_device> m_screen;
required_device<palette_device> m_palette;
optional_device<msm6242_device> m_rtc;
device_t *m_top_scr;
device_t *m_bot_scr;
DECLARE_WRITE8_MEMBER(dynax_vblank_ack_w);
DECLARE_WRITE8_MEMBER(dynax_blitter_ack_w);
DECLARE_WRITE8_MEMBER(jantouki_vblank_ack_w);
@ -275,27 +213,33 @@ public:
DECLARE_WRITE8_MEMBER(jantouki_blitter2_rev2_w);
DECLARE_WRITE8_MEMBER(hanamai_priority_w);
DECLARE_WRITE8_MEMBER(tenkai_priority_w);
DECLARE_DRIVER_INIT(mjelct3);
DECLARE_DRIVER_INIT(blktouch);
DECLARE_DRIVER_INIT(mjelct3a);
DECLARE_DRIVER_INIT(mjreach);
DECLARE_DRIVER_INIT(maya);
UINT32 screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(sprtmtch_vblank_interrupt);
INTERRUPT_GEN_MEMBER(jantouki_vblank_interrupt);
INTERRUPT_GEN_MEMBER(jantouki_sound_vblank_interrupt);
INTERRUPT_GEN_MEMBER(yarunara_clock_interrupt);
INTERRUPT_GEN_MEMBER(mjelctrn_vblank_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(neruton_irq_scanline);
TIMER_DEVICE_CALLBACK_MEMBER(majxtal7_vblank_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(tenkai_interrupt);
void tenkai_update_rombank();
void gekisha_bank_postload();
DECLARE_WRITE_LINE_MEMBER(sprtmtch_sound_callback);
DECLARE_WRITE_LINE_MEMBER(jantouki_sound_callback);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
@ -324,6 +268,7 @@ public:
DECLARE_VIDEO_START(mcnpshnt);
DECLARE_PALETTE_INIT(janyuki);
DECLARE_VIDEO_START(neruton);
inline void blitter_plot_pixel( int layer, int mask, int x, int y, int pen, int wrap, int flags );
int blitter_drawgfx( int layer, int mask, const char *gfx, int src, int pen, int x, int y, int wrap, int flags );
void dynax_blitter_start( int flags );