summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/kaneko16.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/kaneko16.c')
-rw-r--r--src/mame/drivers/kaneko16.c165
1 files changed, 66 insertions, 99 deletions
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 0b5f27b2a34..13f0b1da660 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -276,34 +276,20 @@ static WRITE16_HANDLER( kaneko16_soundlatch_w )
/* Two identically mapped YM2149 chips */
-static READ16_HANDLER( kaneko16_YM2149_0_r )
+static READ16_DEVICE_HANDLER( kaneko16_YM2149_r )
{
/* Each 2149 register is mapped to a different address */
- ay8910_control_port_0_w(space,0,offset);
- return ay8910_read_port_0_r(space,0);
-}
-static READ16_HANDLER( kaneko16_YM2149_1_r )
-{
- /* Each 2149 register is mapped to a different address */
- ay8910_control_port_1_w(space,0,offset);
- return ay8910_read_port_1_r(space,0);
+ ay8910_address_w(device,0,offset);
+ return ay8910_r(device,0);
}
-static WRITE16_HANDLER( kaneko16_YM2149_0_w )
-{
- /* Each 2149 register is mapped to a different address */
- ay8910_control_port_0_w(space,0,offset);
- /* The registers are mapped to odd addresses, except one! */
- if (ACCESSING_BITS_0_7) ay8910_write_port_0_w(space,0, data & 0xff);
- else ay8910_write_port_0_w(space,0,(data >> 8) & 0xff);
-}
-static WRITE16_HANDLER( kaneko16_YM2149_1_w )
+static WRITE16_DEVICE_HANDLER( kaneko16_YM2149_w )
{
/* Each 2149 register is mapped to a different address */
- ay8910_control_port_1_w(space,0,offset);
+ ay8910_address_w(device,0,offset);
/* The registers are mapped to odd addresses, except one! */
- if (ACCESSING_BITS_0_7) ay8910_write_port_1_w(space,0, data & 0xff);
- else ay8910_write_port_1_w(space,0,(data >> 8) & 0xff);
+ if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff);
+ else ay8910_data_w(device,0,(data >> 8) & 0xff);
}
@@ -315,12 +301,12 @@ static WRITE16_HANDLER( kaneko16_YM2149_1_w )
***************************************************************************/
-static READ8_HANDLER( kaneko16_eeprom_r )
+static READ8_DEVICE_HANDLER( kaneko16_eeprom_r )
{
return eeprom_read_bit() & 1;
}
-static WRITE8_HANDLER( kaneko16_eeprom_reset_w )
+static WRITE8_DEVICE_HANDLER( kaneko16_eeprom_reset_w )
{
// reset line asserted: reset.
eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE );
@@ -377,10 +363,10 @@ static ADDRESS_MAP_START( berlwall, ADDRESS_SPACE_PROGRAM, 16 )
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0x780000, 0x780001) AM_READ(watchdog_reset16_r) // Watchdog
- AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound
- AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w)
+ AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE(SOUND, "ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound
+ AM_RANGE(0x800200, 0x80021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r, kaneko16_YM2149_w)
AM_RANGE(0x8003fe, 0x8003ff) AM_NOP // for OKI when accessed as .l
- AM_RANGE(0x800400, 0x800401) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w)
+ AM_RANGE(0x800400, 0x800401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers
AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) //
AM_RANGE(0xc02000, 0xc02fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) //
@@ -397,22 +383,22 @@ ADDRESS_MAP_END
/* The two YM2149 chips are only used when entering high score initials, and */
/* when the game is fully completed. Overkill??? */
-static WRITE16_HANDLER( bakubrkr_oki_bank_sw )
+static WRITE16_DEVICE_HANDLER( bakubrkr_oki_bank_sw )
{
if (ACCESSING_BITS_0_7) {
- okim6295_set_bank_base(0, 0x40000 * (data & 0x7) );
- logerror("PC:%06X Selecting OKI bank %02X\n",cpu_get_pc(space->cpu),data&0xff);
+ okim6295_set_bank_base(device, 0x40000 * (data & 0x7) );
+ logerror("%s:Selecting OKI bank %02X\n",cpuexec_describe_context(device->machine),data&0xff);
}
}
static ADDRESS_MAP_START( bakubrkr, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
- AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_YM2149_0_r) // Sound
- AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_YM2149_0_w)
- AM_RANGE(0x40001e, 0x40001f) AM_WRITE(bakubrkr_oki_bank_sw) // OKI bank Switch
- AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r,kaneko16_YM2149_1_w) // Sound
- AM_RANGE(0x400400, 0x400401) AM_READWRITE(okim6295_status_0_lsb_r,okim6295_data_0_lsb_w) //
+ AM_RANGE(0x400000, 0x40001f) AM_DEVREAD(SOUND, "ay1", kaneko16_YM2149_r) // Sound
+ AM_RANGE(0x400000, 0x40001d) AM_DEVWRITE(SOUND, "ay1", kaneko16_YM2149_w)
+ AM_RANGE(0x40001e, 0x40001f) AM_DEVWRITE(SOUND, "oki", bakubrkr_oki_bank_sw) // OKI bank Switch
+ AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r,kaneko16_YM2149_w) // Sound
+ AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff) //
AM_RANGE(0x500000, 0x500fff) AM_READWRITE(SMH_RAM,kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
AM_RANGE(0x501000, 0x501fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) //
AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) //
@@ -467,20 +453,20 @@ ADDRESS_MAP_END
Blood Warrior
***************************************************************************/
-static WRITE16_HANDLER( bloodwar_oki_0_bank_w )
+static WRITE16_DEVICE_HANDLER( bloodwar_oki_0_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(0, 0x40000 * (data & 0xf) );
+ okim6295_set_bank_base(device, 0x40000 * (data & 0xf) );
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data);
}
}
-static WRITE16_HANDLER( bloodwar_oki_1_bank_w )
+static WRITE16_DEVICE_HANDLER( bloodwar_oki_1_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(1, 0x40000 * data );
+ okim6295_set_bank_base(device, 0x40000 * data );
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data);
}
}
@@ -517,8 +503,8 @@ static ADDRESS_MAP_START( bloodwar, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs
AM_RANGE(0x700000, 0x70001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs
- AM_RANGE(0x800000, 0x800001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w)
- AM_RANGE(0x880000, 0x880001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w)
+ AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff)
+ AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x900000, 0x900039) AM_READWRITE(bloodwar_calc_r, bloodwar_calc_w)
AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
@@ -528,8 +514,8 @@ static ADDRESS_MAP_START( bloodwar, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w)
- AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", bloodwar_oki_0_bank_w)
+ AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", bloodwar_oki_1_bank_w)
ADDRESS_MAP_END
@@ -537,21 +523,21 @@ ADDRESS_MAP_END
Bonk's Adventure
***************************************************************************/
-static WRITE16_HANDLER( bonkadv_oki_0_bank_w )
+static WRITE16_DEVICE_HANDLER( bonkadv_oki_0_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(0, 0x40000 * (data & 0xF));
- logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data);
+ okim6295_set_bank_base(device, 0x40000 * (data & 0xF));
+ logerror("%s: OKI0 bank %08X\n",cpuexec_describe_context(device->machine),data);
}
}
-static WRITE16_HANDLER( bonkadv_oki_1_bank_w )
+static WRITE16_DEVICE_HANDLER( bonkadv_oki_1_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(1, 0x40000 * data );
- logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data);
+ okim6295_set_bank_base(device, 0x40000 * data );
+ logerror("%s: OKI1 bank %08X\n",cpuexec_describe_context(device->machine),data);
}
}
@@ -577,8 +563,8 @@ static ADDRESS_MAP_START( bonkadv, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs
AM_RANGE(0x700000, 0x70001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs
- AM_RANGE(0x800000, 0x800001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w)
- AM_RANGE(0x880000, 0x880001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w)
+ AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff)
+ AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x900000, 0x900015) AM_READWRITE(galpanib_calc_r,galpanib_calc_w)
AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
@@ -588,8 +574,8 @@ static ADDRESS_MAP_START( bonkadv, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r)
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w)
- AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w)
+ AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", bonkadv_oki_0_bank_w)
+ AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", bonkadv_oki_1_bank_w)
ADDRESS_MAP_END
@@ -612,42 +598,24 @@ static READ16_HANDLER( gtmr_wheel_r )
}
}
-static WRITE16_HANDLER( gtmr_oki_0_bank_w )
+static WRITE16_DEVICE_HANDLER( gtmr_oki_0_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(0, 0x40000 * (data & 0xF) );
+ okim6295_set_bank_base(device, 0x40000 * (data & 0xF) );
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",cpu_get_pc(space->cpu),data);
}
}
-static WRITE16_HANDLER( gtmr_oki_1_bank_w )
+static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(1, 0x40000 * (data & 0x1) );
+ okim6295_set_bank_base(device, 0x40000 * (data & 0x1) );
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",cpu_get_pc(space->cpu),data);
}
}
-static WRITE16_HANDLER( gtmr_oki_0_data_w )
-{
- if (ACCESSING_BITS_0_7)
- {
- okim6295_data_0_w(space,0,data);
-// logerror("CPU #0 PC %06X : OKI0 <- %08X\n",cpu_get_pc(space->cpu),data);
- }
-}
-
-static WRITE16_HANDLER( gtmr_oki_1_data_w )
-{
- if (ACCESSING_BITS_0_7)
- {
- okim6295_data_1_w(space,0,data);
-// logerror("CPU #0 PC %06X : OKI1 <- %08X\n",cpu_get_pc(space->cpu),data);
- }
-}
-
static ADDRESS_MAP_START( gtmr_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0ffffd) AM_READ(SMH_ROM ) // ROM
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r ) // Wheel Value
@@ -661,8 +629,8 @@ static ADDRESS_MAP_START( gtmr_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60000f) AM_READ(SMH_RAM ) // Layers 0 Regs
AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM ) // Layers 1 Regs
AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs
- AM_RANGE(0x800000, 0x800001) AM_READ(okim6295_status_0_lsb_r ) // Samples
- AM_RANGE(0x880000, 0x880001) AM_READ(okim6295_status_1_lsb_r )
+ AM_RANGE(0x800000, 0x800001) AM_DEVREAD8(SOUND, "oki1", okim6295_r, 0x00ff ) // Samples
+ AM_RANGE(0x880000, 0x880001) AM_DEVREAD8(SOUND, "oki2", okim6295_r, 0x00ff )
AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ?
AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
@@ -694,13 +662,13 @@ static ADDRESS_MAP_START( gtmr_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60000f) AM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs ) // Layers 0 Regs
AM_RANGE(0x680000, 0x68000f) AM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs ) // Layers 1 Regs
AM_RANGE(0x700000, 0x70001f) AM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs
- AM_RANGE(0x800000, 0x800001) AM_WRITE(gtmr_oki_0_data_w ) // Samples
- AM_RANGE(0x880000, 0x880001) AM_WRITE(gtmr_oki_1_data_w )
+ AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8(SOUND, "oki1", okim6295_w, 0x00ff ) // Samples
+ AM_RANGE(0x880000, 0x880001) AM_DEVWRITE8(SOUND, "oki2", okim6295_w, 0x00ff )
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(watchdog_reset16_w ) // Watchdog
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w ) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable ) // might do more than that
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w ) // Samples Bankswitching
- AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w )
+ AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE(SOUND, "oki1", gtmr_oki_0_bank_w ) // Samples Bankswitching
+ AM_RANGE(0xe80000, 0xe80001) AM_DEVWRITE(SOUND, "oki2", gtmr_oki_1_bank_w )
ADDRESS_MAP_END
@@ -743,8 +711,8 @@ static ADDRESS_MAP_START( gtmr2_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60000f) AM_READ(SMH_RAM ) // Layers 0 Regs
AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM ) // Layers 1 Regs
AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs
- AM_RANGE(0x800000, 0x800001) AM_READ(okim6295_status_0_lsb_r ) // Samples
- AM_RANGE(0x880000, 0x880001) AM_READ(okim6295_status_1_lsb_r )
+ AM_RANGE(0x800000, 0x800001) AM_DEVREAD8(SOUND, "oki1", okim6295_r, 0x00ff ) // Samples
+ AM_RANGE(0x880000, 0x880001) AM_DEVREAD8(SOUND, "oki2", okim6295_r, 0x00ff )
AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ?
AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
@@ -763,9 +731,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mgcrystl, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM
- AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound
- AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w)
- AM_RANGE(0x400400, 0x400401) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w)
+ AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE(SOUND, "ay1", kaneko16_YM2149_r, kaneko16_YM2149_w) // Sound
+ AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE(SOUND, "ay2", kaneko16_YM2149_r, kaneko16_YM2149_w)
+ AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8(SOUND, "oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
AM_RANGE(0x601000, 0x601fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) //
@@ -797,8 +765,8 @@ static WRITE16_HANDLER( shogwarr_oki_bank_w )
{
if (ACCESSING_BITS_0_7)
{
- okim6295_set_bank_base(0, 0x10000 * ((data >> 0) & 0x3) );
- okim6295_set_bank_base(1, 0x10000 * ((data >> 4) & 0x3) );
+ okim6295_set_bank_base(devtag_get_device(space->machine, SOUND, "oki1"), 0x10000 * ((data >> 0) & 0x3) );
+ okim6295_set_bank_base(devtag_get_device(space->machine, SOUND, "oki2"), 0x10000 * ((data >> 4) & 0x3) );
}
}
@@ -811,8 +779,8 @@ static ADDRESS_MAP_START( shogwarr, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(calc3_mcu_com2_w)
AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(calc3_mcu_com3_w)
AM_RANGE(0x380000, 0x380fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette
- AM_RANGE(0x400000, 0x400001) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) // Samples
- AM_RANGE(0x480000, 0x480001) AM_READWRITE(okim6295_status_1_lsb_r, okim6295_data_1_lsb_w)
+ AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8(SOUND, "oki1", okim6295_r, okim6295_w, 0x00ff) // Samples
+ AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8(SOUND, "oki2", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x580000, 0x581fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
AM_RANGE(0x601000, 0x601fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0)
@@ -850,8 +818,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( blazeon_soundport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_WRITE(ym2151_register_port_0_w)
- AM_RANGE(0x03, 0x03) AM_READWRITE(ym2151_status_port_0_r, ym2151_data_port_0_w)
+ AM_RANGE(0x02, 0x03) AM_DEVREADWRITE(SOUND, "ym", ym2151_r, ym2151_w)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
ADDRESS_MAP_END
@@ -1644,20 +1611,20 @@ static const ay8910_interface ay8910_intf_dsw =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- input_port_4_r, /* input A: DSW 1 */
- input_port_5_r, /* input B: DSW 2 */
- NULL,
- NULL,
+ DEVCB_INPUT_PORT("DSW1"),
+ DEVCB_INPUT_PORT("DSW2"),
+ DEVCB_NULL,
+ DEVCB_NULL,
};
static const ay8910_interface ay8910_intf_eeprom =
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
- kaneko16_eeprom_r, /* inputs A: 0,EEPROM bit read */
- NULL, /* inputs B */
- NULL, /* outputs A */
- kaneko16_eeprom_reset_w /* outputs B: 0,EEPROM reset */
+ DEVCB_HANDLER(kaneko16_eeprom_r), /* inputs A: 0,EEPROM bit read */
+ DEVCB_NULL, /* inputs B */
+ DEVCB_NULL, /* outputs A */
+ DEVCB_HANDLER(kaneko16_eeprom_reset_w) /* outputs B: 0,EEPROM reset */
};