oki cleanup (nw)

This commit is contained in:
Miodrag Milanovic 2013-04-11 14:36:17 +00:00
parent 3b4d2b39c2
commit aa4935ce1c
70 changed files with 247 additions and 220 deletions

View File

@ -113,19 +113,15 @@ WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 3));
m_oki->set_bank_base(0x40000 * (data & 3));
}
/*TODO: sound banking. */
WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w)
{
// device_t *device = machine().device("oki");
// if(ACCESSING_BITS_8_15)
// {
// okim6295_device *oki = downcast<okim6295_device *>(device);
// oki->set_bank_base(0x40000 * ((data & 0xf00)>>8));
// m_oki->set_bank_base(0x40000 * ((data & 0xf00)>>8));
// }
}

View File

@ -46,7 +46,8 @@ public:
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram"),
m_paletteram(*this, "paletteram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
@ -72,6 +73,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};
/***************************************************************************
@ -190,22 +192,18 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_eeprom_w)
WRITE16_MEMBER(astrocorp_state::astrocorp_sound_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * ((data >> 8) & 1));
m_oki->set_bank_base(0x40000 * ((data >> 8) & 1));
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
}
}
WRITE16_MEMBER(astrocorp_state::skilldrp_sound_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 1));
m_oki->set_bank_base(0x40000 * (data & 1));
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
}
}

View File

@ -33,7 +33,8 @@ public:
m_txram(*this, "txram"),
m_vregs(*this, "vregs"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT16> m_bgram;
required_shared_ptr<UINT16> m_fgram;
@ -56,6 +57,7 @@ public:
UINT32 screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};
@ -228,9 +230,7 @@ WRITE16_MEMBER(bestleag_state::bestleag_fgram_w)
WRITE16_MEMBER(bestleag_state::oki_bank_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * ((data & 3) - 1));
m_oki->set_bank_base(0x40000 * ((data & 3) - 1));
}

View File

@ -310,8 +310,7 @@ WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w)
WRITE8_MEMBER(cps_state::cps1_oki_pin7_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_pin7(data & 1);
m_oki->set_pin7(data & 1);
}
WRITE16_MEMBER(cps_state::cps1_soundlatch_w)

View File

@ -156,9 +156,7 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated)
WRITE8_MEMBER(ddragon3_state::oki_bankswitch_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
WRITE16_MEMBER(ddragon3_state::ddragon3_io_w)

View File

@ -60,19 +60,15 @@ WRITE16_MEMBER(deniam_state::sound_command_w)
WRITE8_MEMBER(deniam_state::deniam16b_oki_rom_bank_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
}
WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
if ((data&0xFE) != 0) popmessage("OKI bank was not 0 or 1! contact MAMEDEV!");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 0x01) ? 0x40000 : 0x00000);
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0x00000);
}
}

View File

@ -60,7 +60,8 @@ public:
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram"),
m_audiocpu(*this, "audiocpu"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
@ -75,6 +76,7 @@ public:
UINT32 screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};
@ -136,12 +138,9 @@ WRITE16_MEMBER(diverboy_state::soundcmd_w)
WRITE8_MEMBER(diverboy_state::okibank_w)
{
device_t *device = machine().device("oki");
/* bit 2 might be reset */
// popmessage("%02x",data);
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 3) * 0x40000);
m_oki->set_bank_base((data & 3) * 0x40000);
}

View File

@ -19,7 +19,8 @@ public:
m_videoram_fg(*this, "videorafg"),
m_videoram_bg(*this, "videorabg"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_videoram_fg;
@ -44,6 +45,7 @@ public:
UINT32 screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};
@ -154,12 +156,10 @@ WRITE16_MEMBER(drtomy_state::drtomy_vram_bg_w)
WRITE16_MEMBER(drtomy_state::drtomy_okibank_w)
{
device_t *device = machine().device("oki");
if (m_oki_bank != (data & 3))
{
m_oki_bank = data & 3;
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(m_oki_bank * 0x40000);
m_oki->set_bank_base(m_oki_bank * 0x40000);
}
/* unknown bit 2 -> (data & 4) */

View File

@ -73,9 +73,7 @@ WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
WRITE8_MEMBER(funybubl_state::funybubl_oki_bank_sw)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(((data & 1) * 0x40000));
m_oki->set_bank_base(((data & 1) * 0x40000));
}

View File

@ -122,14 +122,12 @@ WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w)
WRITE8_MEMBER(fuuki16_state::fuuki16_oki_banking_w)
{
device_t *device = machine().device("oki");
/*
data & 0x06 is always equals to data & 0x60
data & 0x10 is always set
*/
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(((data & 6) >> 1) * 0x40000);
m_oki->set_bank_base(((data & 6) >> 1) * 0x40000);
}
static ADDRESS_MAP_START( fuuki16_sound_map, AS_PROGRAM, 8, fuuki16_state )

View File

@ -238,11 +238,9 @@ READ16_MEMBER(galpanic_state::comad_timer_r)
/* a kludge! */
READ8_MEMBER(galpanic_state::comad_okim6295_r)
{
// device_t *device = machine().device("oki");
UINT16 retvalue;
// okim6295_device *oki = downcast<okim6295_device *>(device);
// retvalue = oki->read_status(); // doesn't work, causes lockups when girls change..
// retvalue = m_oki->read_status(); // doesn't work, causes lockups when girls change..
retvalue = machine().rand();
return retvalue;

View File

@ -86,11 +86,9 @@ WRITE16_MEMBER(gotcha_state::gotcha_lamps_w)
WRITE16_MEMBER(gotcha_state::gotcha_oki_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((((~data & 0x0100) >> 8) * 0x40000));
m_oki->set_bank_base((((~data & 0x0100) >> 8) * 0x40000));
}
}

View File

@ -86,7 +86,8 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_priority_ram(*this, "priority_ram"),
m_vbowl_trackball(*this, "vbowl_trackball"){ }
m_vbowl_trackball(*this, "vbowl_trackball"),
m_oki(*this, "oki"){ }
required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT16> m_priority_ram;
@ -217,6 +218,7 @@ public:
void ryukobou_decrypt();
void lhb2_decrypt_gfx();
void drgnwrld_gfx_decrypt();
optional_device<okim6295_device> m_oki;
};
@ -2373,11 +2375,9 @@ WRITE16_MEMBER(igs011_state::lhb_irq_enable_w)
WRITE16_MEMBER(igs011_state::lhb_okibank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 0x200) ? 0x40000 : 0);
m_oki->set_bank_base((data & 0x200) ? 0x40000 : 0);
}
if ( data & (~0x200) )

View File

@ -267,10 +267,8 @@ ADDRESS_MAP_END
WRITE16_MEMBER(kaneko16_state::bakubrkr_oki_bank_sw)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7) {
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(0x40000 * (data & 0x7) );
m_oki->set_bank_base(0x40000 * (data & 0x7) );
logerror("%s:Selecting OKI bank %02X\n",machine().describe_context(),data&0xff);
}
}

View File

@ -151,14 +151,12 @@ void ::kickgoal_play(okim6295_device *oki, int melody, int data)
WRITE16_MEMBER(kickgoal_state::kickgoal_snd_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
if (ACCESSING_BITS_0_7)
{
logerror("PC:%06x Writing %04x to Sound CPU\n",space.device().safe_pcbase(),data);
if (data >= 0x40) {
if (data == 0xfe) {
oki->write(0,0x40); /* Stop playing the melody */
m_oki->write(0,0x40); /* Stop playing the melody */
m_melody = 0x00;
m_melody_loop = 0x00;
}
@ -167,37 +165,37 @@ WRITE16_MEMBER(kickgoal_state::kickgoal_snd_w)
}
}
else if (data == 0) {
oki->write(0,0x38); /* Stop playing effects */
m_oki->write(0,0x38); /* Stop playing effects */
}
else {
kickgoal_sound = kickgoal_cmd_snd[data];
if (kickgoal_sound >= 0x70) {
if (kickgoal_snd_bank != 1)
oki->set_bank_base((1 * 0x40000));
m_oki->set_bank_base((1 * 0x40000));
kickgoal_snd_bank = 1;
kickgoal_play(oki, 0, data);
kickgoal_play(m_oki, 0, data);
}
else if (kickgoal_sound >= 0x69) {
if (kickgoal_snd_bank != 2)
oki->set_bank_base((2 * 0x40000));
m_oki->set_bank_base((2 * 0x40000));
kickgoal_snd_bank = 2;
kickgoal_play(oki, 4, data);
kickgoal_play(m_oki, 4, data);
}
else if (kickgoal_sound >= 0x65) {
if (kickgoal_snd_bank != 1)
oki->set_bank_base((1 * 0x40000));
m_oki->set_bank_base((1 * 0x40000));
kickgoal_snd_bank = 1;
kickgoal_play(oki, 4, data);
kickgoal_play(m_oki, 4, data);
}
else if (kickgoal_sound >= 0x60) {
kickgoal_snd_bank = 0;
oki->set_bank_base(device, (0 * 0x40000));
m_oki->set_bank_base(device, (0 * 0x40000));
kickgoal_snd_bank = 0;
kickgoal_play(oki, 4, data);
kickgoal_play(m_oki, 4, data);
}
else {
kickgoal_play(oki, 0, data);
kickgoal_play(m_oki, 0, data);
}
}
}
@ -206,21 +204,19 @@ WRITE16_MEMBER(kickgoal_state::kickgoal_snd_w)
WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
{
device_t *device = machine().device("oki");
logerror("%s: Writing %04x to Sound CPU - mask %04x\n",machine().describe_context(),data,mem_mask);
if (!ACCESSING_BITS_0_7)
data >>= 8;
okim6295_device *oki = downcast<okim6295_device *>(device);
switch (data)
{
case 0xfc: oki->set_bank_base((0 * 0x40000)); break;
case 0xfd: oki->set_bank_base((2 * 0x40000)); break;
case 0xfe: oki->set_bank_base((1 * 0x40000)); break;
case 0xff: oki->set_bank_base((3 * 0x40000)); break;
case 0xfc: m_oki->set_bank_base((0 * 0x40000)); break;
case 0xfd: m_oki->set_bank_base((2 * 0x40000)); break;
case 0xfe: m_oki->set_bank_base((1 * 0x40000)); break;
case 0xff: m_oki->set_bank_base((3 * 0x40000)); break;
case 0x78:
oki->write_command(data);
m_oki->write_command(data);
m_snd_sam[0] = 00; m_snd_sam[1]= 00; m_snd_sam[2] = 00; m_snd_sam[3] = 00;
break;
default:
@ -229,44 +225,44 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
if ((data & 0x80) && (m_snd_sam[3] != m_snd_new))
{
logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x08) != 0x08)
if ((m_oki->read_status() & 0x08) != 0x08)
{
logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
oki->write_command(m_snd_new);
oki->write_command(data);
m_oki->write_command(m_snd_new);
m_oki->write_command(data);
}
m_snd_new = 00;
}
if ((data & 0x40) && (m_snd_sam[2] != m_snd_new))
{
logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x04) != 0x04)
if ((m_oki->read_status() & 0x04) != 0x04)
{
logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
oki->write_command(m_snd_new);
oki->write_command(data);
m_oki->write_command(m_snd_new);
m_oki->write_command(data);
}
m_snd_new = 00;
}
if ((data & 0x20) && (m_snd_sam[1] != m_snd_new))
{
logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x02) != 0x02)
if ((m_oki->read_status() & 0x02) != 0x02)
{
logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
oki->write_command(m_snd_new);
oki->write_command(data);
m_oki->write_command(m_snd_new);
m_oki->write_command(data);
}
m_snd_new = 00;
}
if ((data & 0x10) && (m_snd_sam[0] != m_snd_new))
{
logerror("About to play sample %02x at vol %02x\n", m_snd_new, data);
if ((oki->read_status() & 0x01) != 0x01)
if ((m_oki->read_status() & 0x01) != 0x01)
{
logerror("Playing sample %02x at vol %02x\n", m_snd_new, data);
oki->write_command(m_snd_new);
oki->write_command(data);
m_oki->write_command(m_snd_new);
m_oki->write_command(data);
}
m_snd_new = 00;
}
@ -281,7 +277,7 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
else /* Turn a channel off */
{
logerror("Turning channel %02x off\n", data);
oki->write_command(data);
m_oki->write_command(data);
if (data & 0x40) m_snd_sam[3] = 00;
if (data & 0x20) m_snd_sam[2] = 00;
if (data & 0x10) m_snd_sam[1] = 00;

View File

@ -225,9 +225,8 @@ ADDRESS_MAP_END
WRITE8_MEMBER(legionna_state::okim_rombank_w)
{
device_t *device = machine().device("oki");
// popmessage("%08x",0x40000 * (data & 0x07));
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 0x7));
m_oki->set_bank_base(0x40000 * (data & 0x7));
}
static ADDRESS_MAP_START( cupsocbl_sound_mem, AS_PROGRAM, 8, legionna_state )

View File

@ -351,8 +351,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(lordgun_state::lordgun_okibank_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 2) ? 0x40000 : 0);
m_oki->set_bank_base((data & 2) ? 0x40000 : 0);
if (data & ~3) logerror("%s: unknown okibank bits %02x\n", machine().describe_context(), data);
// popmessage("OKI %x", data);
}

View File

@ -375,8 +375,7 @@ ADDRESS_MAP_END
WRITE16_MEMBER(m92_state::oki_bank_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
m_oki->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
}
static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )

View File

@ -1177,23 +1177,19 @@ static void gakusai_oki_bank_set(device_t *device)
WRITE16_MEMBER(metro_state::gakusai_oki_bank_hi_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
m_gakusai_oki_bank_hi = data & 0xff;
gakusai_oki_bank_set(device);
gakusai_oki_bank_set(m_oki);
}
}
WRITE16_MEMBER(metro_state::gakusai_oki_bank_lo_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
m_gakusai_oki_bank_lo = data & 0xff;
gakusai_oki_bank_set(device);
gakusai_oki_bank_set(m_oki);
}
}

View File

@ -137,9 +137,8 @@ Notes:
WRITE8_MEMBER(midyunit_state::yawdim_oki_bank_w)
{
device_t *device = machine().device("oki");
if (data & 4)
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 3));
m_oki->set_bank_base(0x40000 * (data & 3));
}

View File

@ -249,10 +249,9 @@ WRITE16_MEMBER(moo_state::moo_prot_w)
WRITE16_MEMBER(moo_state::moobl_oki_bank_w)
{
device_t *device = machine().device("oki");
logerror("%x to OKI bank\n", data);
downcast<okim6295_device *>(device)->set_bank_base((data & 0x0f) * 0x40000);
m_oki->set_bank_base((data & 0x0f) * 0x40000);
}
static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )

View File

@ -238,7 +238,8 @@ public:
m_bitmap(*this, "bitmap"),
m_sprgen(*this, "spritegen"),
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu")
m_soundcpu(*this, "soundcpu"),
m_oki(*this, "oki")
{ }
/* memory pointers */
@ -263,6 +264,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
required_device<okim6295_device> m_oki;
DECLARE_WRITE16_MEMBER(fg_videoram_w);
DECLARE_WRITE16_MEMBER(bg_videoram_w);
DECLARE_WRITE16_MEMBER(nmg5_soundlatch_w);
@ -337,8 +339,7 @@ WRITE16_MEMBER(nmg5_state::priority_reg_w)
WRITE8_MEMBER(nmg5_state::oki_banking_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 1) ? 0x40000 : 0);
m_oki->set_bank_base((data & 1) ? 0x40000 : 0);
}
/*******************************************************************

View File

@ -90,10 +90,9 @@ READ16_MEMBER(oneshot_state::oneshot_gun_y_p2_r)
WRITE16_MEMBER(oneshot_state::soundbank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data & 0x03) ^ 0x03));
m_oki->set_bank_base(0x40000 * ((data & 0x03) ^ 0x03));
}
}

View File

@ -32,9 +32,8 @@ READ16_MEMBER(othldrby_state::othldrby_scanline_r)
WRITE16_MEMBER(othldrby_state::oki_bankswitch_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
WRITE16_MEMBER(othldrby_state::coinctrl_w)

View File

@ -157,15 +157,13 @@ READ8_MEMBER(playmark_state::playmark_snd_flag_r)
WRITE8_MEMBER(playmark_state::playmark_oki_banking_w)
{
device_t *device = machine().device("oki");
if (m_old_oki_bank != (data & 7))
{
m_old_oki_bank = data & 7;
if (((m_old_oki_bank - 1) * 0x40000) < memregion("oki")->bytes())
{
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (m_old_oki_bank - 1));
m_oki->set_bank_base(0x40000 * (m_old_oki_bank - 1));
}
}
}

View File

@ -30,7 +30,8 @@ public:
m_mid_videoram(*this, "mid_videoram"),
m_txt_videoram(*this, "txt_videoram"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_video_regs;
@ -62,6 +63,7 @@ public:
virtual void palette_init();
UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};
@ -211,8 +213,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w)
WRITE16_MEMBER(pzletime_state::oki_bank_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 0x3));
m_oki->set_bank_base(0x40000 * (data & 0x3));
}
CUSTOM_INPUT_MEMBER(pzletime_state::ticket_status_r)

View File

@ -106,7 +106,7 @@ WRITE16_MEMBER(rampart_state::latch_w)
{
set_oki6295_volume((data & 0x0020) ? 100 : 0);
if (!(data & 0x0010))
machine().device("oki")->reset();
m_oki->reset();
set_ym2413_volume(((data >> 1) & 7) * 100 / 7);
if (!(data & 0x0001))
machine().device("ymsnd")->reset();

View File

@ -588,21 +588,19 @@ READ32_MEMBER(seta2_state::funcube_debug_r)
READ32_MEMBER(seta2_state::oki_read)
{
device_t *device = machine().device("oki");
return downcast<okim9810_device *>(device)->read_status() << 16;
return m_oki->read_status() << 16;
}
WRITE32_MEMBER(seta2_state::oki_write)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
const UINT8 tmp = (data & 0x000000ff);
downcast<okim9810_device *>(device)->write_TMP_register(tmp);
m_oki->write_TMP_register(tmp);
}
else if (ACCESSING_BITS_16_23)
{
const UINT8 cmd = (data & 0x00ff0000) >> 16;
downcast<okim9810_device *>(device)->write_command(cmd);
m_oki->write_command(cmd);
}
}

View File

@ -390,8 +390,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(shadfrce_state::oki_bankswitch_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8, shadfrce_state )

View File

@ -351,12 +351,11 @@ ADDRESS_MAP_END
WRITE8_MEMBER(snowbros_state::twinadv_oki_bank_w)
{
device_t *device = machine().device("oki");
int bank = (data &0x02)>>1;
if (data&0xfd) logerror ("Unused bank bits! %02x\n",data);
downcast<okim6295_device *>(device)->set_bank_base(bank * 0x40000);
m_oki->set_bank_base(bank * 0x40000);
}
static ADDRESS_MAP_START( twinadv_sound_io_map, AS_IO, 8, snowbros_state )
@ -471,12 +470,10 @@ void snowbros_state::sb3_play_sound (okim6295_device *oki, int data)
WRITE16_MEMBER(snowbros_state::sb3_sound_w)
{
device_t *device = machine().device("oki");
okim6295_device *oki = downcast<okim6295_device *>(device);
if (data == 0x00fe)
{
m_sb3_music_is_playing = 0;
oki->write_command(0x78); /* Stop sounds */
m_oki->write_command(0x78); /* Stop sounds */
}
else /* the alternating 0x00-0x2f or 0x30-0x5f might be something to do with the channels */
{
@ -484,7 +481,7 @@ WRITE16_MEMBER(snowbros_state::sb3_sound_w)
if (data <= 0x21)
{
sb3_play_sound(oki, data);
sb3_play_sound(m_oki, data);
}
if (data>=0x22 && data<=0x31)
@ -494,7 +491,7 @@ WRITE16_MEMBER(snowbros_state::sb3_sound_w)
if ((data>=0x30) && (data<=0x51))
{
sb3_play_sound(oki, data-0x30);
sb3_play_sound(m_oki, data-0x30);
}
if (data>=0x52 && data<=0x5f)

View File

@ -98,8 +98,7 @@ WRITE8_MEMBER(speedspn_state::speedspn_sound_w)
WRITE8_MEMBER(speedspn_state::oki_banking_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 3));
m_oki->set_bank_base(0x40000 * (data & 3));
}
/*** MEMORY MAPS *************************************************************/

View File

@ -295,7 +295,6 @@ static void sslam_play(device_t *device, int track, int data)
WRITE16_MEMBER(sslam_state::sslam_snd_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
logerror("%s Writing %04x to Sound CPU\n",machine().describe_context(),data);
@ -303,7 +302,7 @@ WRITE16_MEMBER(sslam_state::sslam_snd_w)
if (data == 0xfe) {
/* This should reset the sound MCU and stop audio playback, but here, it */
/* chops the first coin insert. So let's only stop any playing melodies. */
sslam_play(device, 1, (0x80 | 0x40)); /* Stop playing the melody */
sslam_play(m_oki, 1, (0x80 | 0x40)); /* Stop playing the melody */
}
else {
logerror("Unknown command (%02x) sent to the Sound controller\n",data);
@ -323,13 +322,13 @@ WRITE16_MEMBER(sslam_state::sslam_snd_w)
else if (m_sound >= 0x70) {
/* These vocals are in bank 1, but a bug in the actual MCU doesn't set the bank */
// if (m_snd_bank != 1)
// downcast<okim6295_device *>(device)->set_bank_base((1 * 0x40000));
// m_oki->set_bank_base((1 * 0x40000));
// sslam_snd_bank = 1;
sslam_play(device, 0, m_sound);
sslam_play(m_oki, 0, m_sound);
}
else if (m_sound >= 0x69) {
if (m_snd_bank != 2)
downcast<okim6295_device *>(device)->set_bank_base(2 * 0x40000);
m_oki->set_bank_base(2 * 0x40000);
m_snd_bank = 2;
switch (m_sound)
{
@ -338,18 +337,18 @@ WRITE16_MEMBER(sslam_state::sslam_snd_w)
case 0x6c: m_melody = 7; break;
default: m_melody = 0; m_bar = 0; break; /* Invalid */
}
sslam_play(device, m_melody, m_sound);
sslam_play(m_oki, m_melody, m_sound);
}
else if (m_sound >= 0x65) {
if (m_snd_bank != 1)
downcast<okim6295_device *>(device)->set_bank_base(1 * 0x40000);
m_oki->set_bank_base(1 * 0x40000);
m_snd_bank = 1;
m_melody = 4;
sslam_play(device, m_melody, m_sound);
sslam_play(m_oki, m_melody, m_sound);
}
else if (m_sound >= 0x60) {
if (m_snd_bank != 0)
downcast<okim6295_device *>(device)->set_bank_base(0 * 0x40000);
m_oki->set_bank_base(0 * 0x40000);
m_snd_bank = 0;
switch (m_sound)
{
@ -358,10 +357,10 @@ WRITE16_MEMBER(sslam_state::sslam_snd_w)
case 0x64: m_melody = 3; break;
default: m_melody = 0; m_bar = 0; break; /* Invalid */
}
sslam_play(device, m_melody, m_sound);
sslam_play(m_oki, m_melody, m_sound);
}
else {
sslam_play(device, 0, m_sound);
sslam_play(m_oki, 0, m_sound);
}
}
}

View File

@ -88,8 +88,7 @@ WRITE16_MEMBER(stlforce_state::eeprom_w)
WRITE16_MEMBER(stlforce_state::oki_bank_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data>>8) & 3));
m_oki->set_bank_base(0x40000 * ((data>>8) & 3));
}
static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )

View File

@ -81,7 +81,8 @@ public:
m_outputs16(*this, "outputs16"),
m_outputs(*this, "outputs"),
m_am188em_regs(*this, "am188em_regs"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
UINT8 *m_hm86171_colorram;
layer_t m_layers[2];
@ -170,6 +171,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(am188em_timer2_irq);
TIMER_DEVICE_CALLBACK_MEMBER(h8_timer_irq);
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
};
@ -819,18 +821,14 @@ READ8_MEMBER(subsino2_state::vblank_bit6_r)
WRITE8_MEMBER(subsino2_state::oki_bank_bit0_w)
{
device_t *device = machine().device("oki");
// it writes 0x32 or 0x33
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
WRITE8_MEMBER(subsino2_state::oki_bank_bit4_w)
{
device_t *device = machine().device("oki");
// it writes 0x23 or 0x33
okim6295_device *oki = downcast<okim6295_device *>(device);
oki->set_bank_base(((data >> 4) & 1) * 0x40000);
m_oki->set_bank_base(((data >> 4) & 1) * 0x40000);
}

View File

@ -36,7 +36,8 @@ public:
m_tlc34076(*this, "tlc34076"),
m_vram(*this, "vram"),
m_control(*this, "control"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
required_device<tlc34076_device> m_tlc34076;
required_shared_ptr<UINT16> m_vram;
@ -63,6 +64,7 @@ public:
TIMER_CALLBACK_MEMBER(clear_gun_interrupt);
TIMER_CALLBACK_MEMBER(setup_gun_interrupts);
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
};
@ -355,23 +357,22 @@ WRITE16_MEMBER(tickee_state::rapidfir_control_w)
WRITE16_MEMBER(tickee_state::sound_bank_w)
{
device_t *device = machine().device("oki");
switch (data & 0xff)
{
case 0x2c:
downcast<okim6295_device *>(device)->set_bank_base(0x00000);
m_oki->set_bank_base(0x00000);
break;
case 0x2d:
downcast<okim6295_device *>(device)->set_bank_base(0x40000);
m_oki->set_bank_base(0x40000);
break;
case 0x1c:
downcast<okim6295_device *>(device)->set_bank_base(0x80000);
m_oki->set_bank_base(0x80000);
break;
case 0x1d:
downcast<okim6295_device *>(device)->set_bank_base(0xc0000);
m_oki->set_bank_base(0xc0000);
break;
default:

View File

@ -124,12 +124,14 @@ public:
m_maincpu(*this,"maincpu"),
m_microtouch(*this,"microtouch"),
m_regs(*this, "regs"),
m_galgames_ram(*this, "galgames_ram"){ }
m_galgames_ram(*this, "galgames_ram"),
m_oki(*this, "oki"){ }
required_device<cpu_device> m_maincpu;
optional_device<microtouch_device> m_microtouch;
required_shared_ptr<UINT16> m_regs;
optional_shared_ptr<UINT16> m_galgames_ram;
required_device<okim6295_device> m_oki;
int m_okibank;
UINT8 m_rtc_ram[8];
@ -201,12 +203,11 @@ public:
WRITE16_MEMBER(tmaster_state::tmaster_oki_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
// data & 0x0800?
m_okibank = ((data >> 8) & 3);
downcast<okim6295_device *>(device)->set_bank_base(m_okibank * 0x40000);
m_oki->set_bank_base(m_okibank * 0x40000);
}
if (ACCESSING_BITS_0_7)

View File

@ -746,10 +746,9 @@ WRITE16_MEMBER(toaplan2_state::fixeight_subcpu_ctrl_w)
WRITE16_MEMBER(toaplan2_state::oki_bankswitch_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_0_7)
{
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
}

View File

@ -605,8 +605,6 @@ void tumbleb_state::process_tumbleb2_music_command( okim6295_device *oki, int da
WRITE16_MEMBER(tumbleb_state::tumbleb2_soundmcu_w)
{
device_t *device = machine().device("oki");
int sound = tumbleb_sound_lookup[data & 0xff];
if (sound == 0x00)
@ -616,11 +614,11 @@ WRITE16_MEMBER(tumbleb_state::tumbleb2_soundmcu_w)
}
else if (sound == -2)
{
process_tumbleb2_music_command(downcast<okim6295_device *>(device), data);
process_tumbleb2_music_command(m_oki, data);
}
else
{
tumbleb2_play_sound(downcast<okim6295_device *>(device), sound);
tumbleb2_play_sound(m_oki, sound);
}
}
@ -1944,8 +1942,6 @@ GFXDECODE_END
MACHINE_START_MEMBER(tumbleb_state,tumbleb)
{
m_oki = machine().device("oki");
save_item(NAME(m_music_command));
save_item(NAME(m_music_bank));
save_item(NAME(m_music_is_playing));

View File

@ -50,11 +50,10 @@ Year + Game PCB Notes
WRITE16_MEMBER(unico_state::burglarx_sound_bank_w)
{
device_t *device = machine().device("oki");
if (ACCESSING_BITS_8_15)
{
int bank = (data >> 8 ) & 1;
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * bank );
m_oki->set_bank_base(0x40000 * bank );
}
}

View File

@ -77,7 +77,8 @@ public:
m_wram(*this,"wram"),
m_tiles32(*this,"tiles32"),
m_wram32(*this,"wram32"),
m_maincpu(*this, "maincpu") {
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") {
m_has_extra_gfx = 0;
}
@ -167,6 +168,7 @@ public:
UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
};
READ16_MEMBER(vamphalf_state::eeprom_r)
@ -288,8 +290,7 @@ F94B
WRITE32_MEMBER(vamphalf_state::finalgdr_oki_bank_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * ((data & 0x300) >> 8));
m_oki->set_bank_base(0x40000 * ((data & 0x300) >> 8));
}
WRITE32_MEMBER(vamphalf_state::finalgdr_backupram_bank_w)
@ -333,9 +334,8 @@ WRITE32_MEMBER(vamphalf_state::aoh_oki_bank_w)
WRITE16_MEMBER(vamphalf_state::boonggab_oki_bank_w)
{
device_t *device = machine().device("oki");
if(offset)
downcast<okim6295_device *>(device)->set_bank_base(0x40000 * (data & 0x7));
m_oki->set_bank_base(0x40000 * (data & 0x7));
}
WRITE16_MEMBER(vamphalf_state::boonggab_prize_w)

View File

@ -158,8 +158,7 @@ WRITE16_MEMBER(wwfwfest_state::wwfwfest_scroll_write)
WRITE8_MEMBER(wwfwfest_state::oki_bankswitch_w)
{
device_t *device = machine().device("oki");
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
m_oki->set_bank_base((data & 1) * 0x40000);
}
WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)

View File

@ -1,5 +1,6 @@
#include "video/vsystem_spr.h"
#include "video/vsystem_spr2.h"
#include "sound/okim6295.h"
class aerofgt_state : public driver_device
{
@ -18,7 +19,8 @@ public:
m_spr_old(*this, "vsystem_spr_old"),
m_spr_old2(*this, "vsystem_spr_ol2"),
m_audiocpu(*this, "audiocpu"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_bg1videoram;
@ -121,4 +123,5 @@ public:
void wbbc97_draw_bitmap( bitmap_rgb32 &bitmap );
DECLARE_WRITE_LINE_MEMBER(irqhandler);
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
};

View File

@ -3,6 +3,7 @@
#include "sound/msm5205.h"
#include "sound/qsound.h"
#include "sound/okim6295.h"
struct gfx_range
{
@ -75,7 +76,8 @@ public:
m_objram2(*this, "objram2"),
m_output(*this, "output"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu")
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki")
{ }
/* memory pointers */
@ -164,6 +166,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
optional_device<okim6295_device> m_oki;
msm5205_device *m_msm_1; // fcrash
msm5205_device *m_msm_2; // fcrash
DECLARE_READ16_MEMBER(cps1_hack_dsw_r);

View File

@ -3,7 +3,7 @@
Double Dragon 3 & The Combatribes
*************************************************************************/
#include "sound/okim6295.h"
class ddragon3_state : public driver_device
{
@ -14,7 +14,8 @@ public:
m_fg_videoram(*this, "fg_videoram"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"){ }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki"){ }
/* memory pointers */
required_shared_ptr<UINT16> m_bg_videoram;
@ -38,6 +39,8 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
DECLARE_WRITE16_MEMBER(ddragon3_io_w);
DECLARE_WRITE16_MEMBER(ddragon3_scroll_w);
DECLARE_READ16_MEMBER(ddragon3_scroll_r);

View File

@ -3,7 +3,7 @@
Deniam games
*************************************************************************/
#include "sound/okim6295.h"
class deniam_state : public driver_device
{
@ -15,7 +15,8 @@ public:
m_spriteram(*this, "spriteram"),
m_paletteram(*this, "paletteram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_videoram;
@ -69,4 +70,5 @@ public:
DECLARE_WRITE_LINE_MEMBER(irqhandler);
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu; // system 16c does not have sound CPU
required_device<okim6295_device> m_oki;
};

View File

@ -1,4 +1,4 @@
#include "sound/okim6295.h"
class funybubl_state : public driver_device
{
@ -7,7 +7,8 @@ public:
: driver_device(mconfig, type, tag),
m_paletteram(*this, "paletteram"),
m_audiocpu(*this, "audiocpu"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT8> m_paletteram;
@ -27,4 +28,5 @@ public:
UINT32 screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};

View File

@ -1,4 +1,4 @@
#include "sound/okim6295.h"
class fuuki16_state : public driver_device
{
@ -11,7 +11,8 @@ public:
m_unknown(*this, "unknown"),
m_priority(*this, "priority"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"){ }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki"){ }
/* memory pointers */
required_shared_ptr_array<UINT16,4> m_vram;
@ -54,4 +55,5 @@ public:
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
void fuuki16_draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri );
DECLARE_WRITE_LINE_MEMBER(soundirq);
required_device<okim6295_device> m_oki;
};

View File

@ -3,7 +3,7 @@
Gotcha
*************************************************************************/
#include "sound/okim6295.h"
#include "video/decospr.h"
class gotcha_state : public driver_device
@ -16,7 +16,8 @@ public:
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen"),
m_audiocpu(*this, "audiocpu"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_fgvideoram;
@ -50,4 +51,5 @@ public:
UINT32 screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
inline void get_tile_info( tile_data &tileinfo, int tile_index ,UINT16 *vram, int color_offs);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};

View File

@ -12,7 +12,7 @@
#include "video/kaneko_spr.h"
#include "machine/kaneko_calc3.h"
#include "machine/kaneko_toybox.h"
#include "sound/okim6295.h"
@ -27,7 +27,8 @@ public:
m_view2_0(*this, "view2_0"),
m_view2_1(*this, "view2_1"),
m_kaneko_spr(*this, "kan_spr"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
required_device<cpu_device> m_maincpu;
optional_shared_ptr<UINT16> m_spriteram;
@ -72,6 +73,7 @@ public:
void kaneko16_unscramble_tiles(const char *region);
void kaneko16_expand_sample_banks(const char *region);
optional_device<cpu_device> m_audiocpu;
optional_device<okim6295_device> m_oki;
};
class kaneko16_gtmr_state : public kaneko16_state

View File

@ -19,7 +19,8 @@ public:
m_spriteram(*this, "spriteram"),
m_adpcm(*this, "oki"),
m_eeprom(*this, "eeprom") ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
required_shared_ptr<UINT16> m_fgram;
@ -80,4 +81,5 @@ public:
void kickgoal_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
void kickgoal_play(okim6295_device *oki, int melody, int data);
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class legionna_state : public driver_device
{
public:
@ -9,7 +11,8 @@ public:
m_mid_data(*this, "mid_data"),
m_textram(*this, "textram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_back_data;
@ -58,6 +61,7 @@ public:
void descramble_legionnaire_gfx(UINT8* src);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
};
/*----------- defined in video/legionna.c -----------*/

View File

@ -3,6 +3,7 @@
-= IGS Lord Of Gun =-
*************************************************************************/
#include "sound/okim6295.h"
struct lordgun_gun_data
{
@ -22,7 +23,8 @@ public:
m_scroll_x(*this, "scroll_x"),
m_scroll_y(*this, "scroll_y") ,
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu") { }
m_soundcpu(*this, "soundcpu"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT16> m_priority_ram;
required_shared_ptr<UINT16> m_scrollram;
@ -78,6 +80,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(soundirq);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
required_device<okim6295_device> m_oki;
};
/*----------- defined in video/lordgun.c -----------*/

View File

@ -5,6 +5,7 @@
*************************************************************************/
#include "video/bufsprite.h"
#include "sound/okim6295.h"
struct pf_layer_info
{
@ -23,7 +24,8 @@ public:
m_vram_data(*this, "vram_data"),
m_spritecontrol(*this, "spritecontrol"),
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu")
m_soundcpu(*this, "soundcpu"),
m_oki(*this, "oki")
{ }
required_device<buffered_spriteram16_device> m_spriteram;
@ -84,6 +86,7 @@ public:
void m92_update_scroll_positions();
void m92_draw_tiles(bitmap_ind16 &bitmap,const rectangle &cliprect);
void m92_sprite_interrupt();
optional_device<okim6295_device> m_oki;
};
/*----------- defined in drivers/m92.c -----------*/

View File

@ -7,6 +7,7 @@
#include "cpu/tms34010/tms34010.h"
#include "audio/williams.h"
#include "machine/nvram.h"
#include "sound/okim6295.h"
/* protection data types */
struct protection_data
@ -38,7 +39,8 @@ public:
m_adpcm_sound(*this, "adpcm"),
m_gfx_rom(*this, "gfx_rom", 16) ,
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
optional_device<williams_narc_sound_device> m_narc_sound;
optional_device<williams_cvsd_sound_device> m_cvsd_sound;
@ -113,6 +115,7 @@ public:
TIMER_CALLBACK_MEMBER(autoerase_line);
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
optional_device<okim6295_device> m_oki;
};
/*----------- defined in video/midyunit.c -----------*/
void midyunit_to_shiftreg(address_space &space, UINT32 address, UINT16 *shiftreg);

View File

@ -3,6 +3,7 @@
Wild West C.O.W.boys of Moo Mesa / Bucky O'Hare
*************************************************************************/
#include "sound/okim6295.h"
class moo_state : public driver_device
{
@ -12,7 +13,8 @@ public:
m_workram(*this, "workram"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"){ }
m_soundcpu(*this, "soundcpu"),
m_oki(*this, "oki"){ }
/* memory pointers */
optional_shared_ptr<UINT16> m_workram;
@ -33,6 +35,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_soundcpu;
optional_device<okim6295_device> m_oki;
device_t *m_k054539;
device_t *m_k053246;
device_t *m_k053251;

View File

@ -1,3 +1,4 @@
#include "sound/okim6295.h"
class oneshot_state : public driver_device
{
@ -10,7 +11,8 @@ public:
m_fg_videoram(*this, "fg_videoram"),
m_scroll(*this, "scroll"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"){ }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki"){ }
/* memory pointers */
required_shared_ptr<UINT16> m_sprites;
@ -56,4 +58,5 @@ public:
void draw_crosshairs( bitmap_ind16 &bitmap, const rectangle &cliprect );
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
DECLARE_WRITE_LINE_MEMBER(irqhandler);
required_device<okim6295_device> m_oki;
};

View File

@ -3,6 +3,7 @@
Othello Derby
*************************************************************************/
#include "sound/okim6295.h"
#define OTHLDRBY_VREG_SIZE 18
@ -11,7 +12,8 @@ class othldrby_state : public driver_device
public:
othldrby_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
/* memory pointers */
UINT16 * m_vram;
@ -47,4 +49,5 @@ public:
inline void get_tile_info( tile_data &tileinfo, int tile_index, int plane );
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int priority );
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};

View File

@ -5,13 +5,15 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "sound/okim6295.h"
class rampart_state : public atarigen_state
{
public:
rampart_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_bitmap(*this, "bitmap") { }
m_bitmap(*this, "bitmap"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT16> m_bitmap;
UINT8 m_has_mo;
@ -24,4 +26,5 @@ public:
DECLARE_VIDEO_START(rampart);
UINT32 screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void rampart_bitmap_render(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim9810.h"
class seta2_state : public driver_device
{
public:
@ -9,7 +11,8 @@ public:
m_vregs(*this, "vregs", 0),
m_coldfire_regs(*this, "coldfire_regs"),
m_funcube_outputs(*this, "funcube_outputs"),
m_funcube_leds(*this, "funcube_leds"){ }
m_funcube_leds(*this, "funcube_leds"),
m_oki(*this, "oki"){ }
required_device<cpu_device> m_maincpu;
optional_shared_ptr<UINT16> m_nvram;
@ -77,4 +80,5 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(funcube_interrupt);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
void funcube_debug_outputs();
optional_device<okim9810_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class shadfrce_state : public driver_device
{
public:
@ -8,7 +10,8 @@ public:
m_bg1videoram(*this, "bg1videoram"),
m_spvideoram(*this, "spvideoram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
tilemap_t *m_fgtilemap;
tilemap_t *m_bg0tilemap;
@ -50,4 +53,5 @@ public:
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
};

View File

@ -9,7 +9,8 @@ public:
m_hyperpac_ram(*this, "hyperpac_ram"),
m_bootleg_spriteram16(*this, "spriteram16b"),
m_maincpu(*this,"maincpu"),
m_soundcpu(*this, "soundcpu"){ }
m_soundcpu(*this, "soundcpu"),
m_oki(*this, "oki"){ }
optional_shared_ptr<UINT16> m_hyperpac_ram;
int m_sb3_music_is_playing;
@ -57,4 +58,5 @@ public:
void sb3_play_sound (okim6295_device *oki, int data);
DECLARE_WRITE_LINE_MEMBER(irqhandler);
optional_device<cpu_device> m_soundcpu;
optional_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class speedspn_state : public driver_device
{
public:
@ -5,7 +7,8 @@ public:
: driver_device(mconfig, type, tag),
m_attram(*this, "attram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT8> m_attram;
tilemap_t *m_tilemap;
@ -27,4 +30,5 @@ public:
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class sslam_state : public driver_device
{
public:
@ -9,7 +11,8 @@ public:
m_regs(*this, "regs"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
emu_timer *m_music_timer;
@ -58,4 +61,5 @@ public:
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class stlforce_state : public driver_device
{
public:
@ -12,7 +14,8 @@ public:
m_mhigh_scrollram(*this, "mhigh_scrollram"),
m_vidattrram(*this, "vidattrram"),
m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
tilemap_t *m_bg_tilemap;
tilemap_t *m_mlow_tilemap;
@ -47,4 +50,5 @@ public:
UINT32 screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
};

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class tatsumi_state : public driver_device
{
public:
@ -23,7 +25,8 @@ public:
m_spriteram(*this, "spriteram") ,
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_subcpu(*this, "sub") { }
m_subcpu(*this, "sub"),
m_oki(*this, "oki") { }
optional_shared_ptr<UINT16> m_videoram;
optional_shared_ptr<UINT16> m_cyclwarr_cpua_ram;
@ -133,6 +136,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<cpu_device> m_subcpu;
required_device<okim6295_device> m_oki;
};
/*----------- defined in machine/tatsumi.c -----------*/

View File

@ -7,7 +7,7 @@
// VDP related
#include "video/gp9001.h"
#include "sound/okim6295.h"
// Cache the CPUs and VDPs for faster access
class toaplan2_state : public driver_device
{
@ -22,7 +22,8 @@ public:
m_tx_gfxram16(*this, "tx_gfxram16"),
m_mainram16(*this, "mainram16"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") {
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") {
m_vdp0 = NULL;
m_vdp1 = NULL;
}
@ -141,4 +142,5 @@ public:
DECLARE_WRITE_LINE_MEMBER(bbakraid_irqhandler);
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
optional_device<okim6295_device> m_oki;
};

View File

@ -14,7 +14,8 @@ public:
m_control(*this, "control"),
m_sprgen(*this, "spritegen"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu")
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki")
{ }
/* memory pointers */
@ -43,7 +44,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
device_t *m_oki;
required_device<okim6295_device> m_oki;
UINT8 m_semicom_prot_offset;
UINT16 m_protbase;
DECLARE_WRITE16_MEMBER(tumblepb_oki_w);

View File

@ -1,3 +1,5 @@
#include "sound/okim6295.h"
class unico_state : public driver_device
{
public:
@ -8,7 +10,8 @@ public:
m_vram32(*this, "vram32"),
m_scroll32(*this, "scroll32"),
m_spriteram(*this, "spriteram", 0),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki") { }
optional_shared_ptr<UINT16> m_vram;
optional_shared_ptr<UINT16> m_scroll;
@ -46,4 +49,5 @@ public:
void unico_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
void zeropnt2_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
};

View File

@ -1,4 +1,5 @@
#include "video/bufsprite.h"
#include "sound/okim6295.h"
class wwfwfest_state : public driver_device
{
@ -10,7 +11,8 @@ public:
m_bg1_videoram(*this, "bg1_videoram"),
m_spriteram(*this, "spriteram") ,
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki") { }
required_shared_ptr<UINT16> m_fg0_videoram;
required_shared_ptr<UINT16> m_bg0_videoram;
@ -50,4 +52,5 @@ public:
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<okim6295_device> m_oki;
};

View File

@ -350,7 +350,7 @@ READ8_MEMBER(tatsumi_state::tatsumi_hack_ym2151_r)
// Mame really should emulate the OKI status reads even with Mame sound off.
READ8_MEMBER(tatsumi_state::tatsumi_hack_oki_r)
{
int r=downcast<okim6295_device *>(machine().device("oki"))->read(space,0);
int r=m_oki->read(space,0);
if (space.device().safe_pc()==0x2b70 || space.device().safe_pc()==0x2bb5
|| space.device().safe_pc()==0x2acc