mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
okim6295: Directly use set_rom_bank [O. Galibert]
dirom: Add a mandatory callback on bank change [O. Galibert]
This commit is contained in:
parent
98392fb5e3
commit
7f37b29274
@ -204,6 +204,16 @@ void bsmt2000_device::sound_stream_update(sound_stream &stream, stream_sample_t
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void bsmt2000_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// read_status - return the write pending status
|
||||
//-------------------------------------------------
|
||||
|
@ -64,6 +64,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
public:
|
||||
// internal TMS I/O callbacks
|
||||
DECLARE_READ16_MEMBER( tms_register_r );
|
||||
|
@ -40,6 +40,16 @@ c352_device::c352_device(const machine_config &mconfig, const char *tag, device_
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void c352_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// static_set_dividder - configuration helper to
|
||||
// set the divider setting
|
||||
|
@ -47,6 +47,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
enum {
|
||||
C352_FLG_BUSY = 0x8000, // channel is busy
|
||||
|
@ -82,6 +82,15 @@ void es5503_device::device_timer(emu_timer &timer, device_timer_id tid, int para
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void es5503_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
// halt_osc: handle halting an oscillator
|
||||
// chip = chip ptr
|
||||
// onum = oscillator #
|
||||
|
@ -50,6 +50,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
devcb_write_line m_irq_func;
|
||||
devcb_read8 m_adc_func;
|
||||
|
||||
|
@ -114,6 +114,16 @@ void k053260_device::device_reset()
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void k053260_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER( k053260_device::main_read )
|
||||
{
|
||||
// sub-to-main ports
|
||||
|
@ -52,6 +52,9 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
// configuration
|
||||
sound_stream * m_stream;
|
||||
|
@ -727,3 +727,13 @@ void multipcm_device::sound_stream_update(sound_stream &stream, stream_sample_t
|
||||
datap[1][i] = clamp_to_int16(smpr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void multipcm_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
@ -26,6 +26,9 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
struct sample_t
|
||||
{
|
||||
|
@ -86,8 +86,6 @@ okim6295_device::okim6295_device(const machine_config &mconfig, const char *tag,
|
||||
device_rom_interface(mconfig, *this, 18),
|
||||
m_region(*this, DEVICE_SELF),
|
||||
m_command(-1),
|
||||
m_bank_installed(false),
|
||||
m_bank_offs(0),
|
||||
m_stream(nullptr),
|
||||
m_pin7_state(0)
|
||||
{
|
||||
@ -117,7 +115,6 @@ void okim6295_device::device_start()
|
||||
m_stream = machine().sound().stream_alloc(*this, 0, 1, clock() / divisor);
|
||||
|
||||
save_item(NAME(m_command));
|
||||
save_item(NAME(m_bank_offs));
|
||||
save_item(NAME(m_pin7_state));
|
||||
|
||||
for (int voicenum = 0; voicenum < OKIM6295_VOICES; voicenum++)
|
||||
@ -151,9 +148,6 @@ void okim6295_device::device_reset()
|
||||
|
||||
void okim6295_device::device_post_load()
|
||||
{
|
||||
if (m_bank_offs != 0)
|
||||
set_bank_base(m_bank_offs, true);
|
||||
|
||||
device_clock_changed();
|
||||
}
|
||||
|
||||
@ -187,21 +181,12 @@ void okim6295_device::sound_stream_update(sound_stream &stream, stream_sample_t
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_bank_base - old-style bank management;
|
||||
// assumes multiple 256k banks
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void okim6295_device::set_bank_base(offs_t base, bool bDontUpdateStream)
|
||||
void okim6295_device::rom_bank_updated()
|
||||
{
|
||||
// flush out anything pending (but not on e.g. a state load)
|
||||
if (!bDontUpdateStream)
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
m_bank_offs = base;
|
||||
|
||||
set_rom_bank(m_bank_offs / 0x40000);
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
|
@ -64,7 +64,6 @@ public:
|
||||
static void static_set_pin7(device_t &device, int pin7);
|
||||
|
||||
// runtime configuration
|
||||
void set_bank_base(offs_t base, bool bDontUpdateStream = false);
|
||||
void set_pin7(int pin7);
|
||||
|
||||
UINT8 read_status();
|
||||
@ -83,6 +82,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
// a single voice
|
||||
class okim_voice
|
||||
{
|
||||
@ -106,8 +108,6 @@ protected:
|
||||
|
||||
okim_voice m_voice[OKIM6295_VOICES];
|
||||
INT32 m_command;
|
||||
bool m_bank_installed;
|
||||
offs_t m_bank_offs;
|
||||
sound_stream * m_stream;
|
||||
UINT8 m_pin7_state;
|
||||
|
||||
|
@ -160,6 +160,16 @@ void okim9810_device::device_clock_changed()
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void okim9810_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// stream_generate - handle update requests for
|
||||
// our sound stream
|
||||
|
@ -92,6 +92,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
// a single voice
|
||||
class okim_voice
|
||||
{
|
||||
|
@ -212,6 +212,16 @@ machine_config_constructor qs1000_device::device_mconfig_additions() const
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void qs1000_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
@ -85,6 +85,9 @@ protected:
|
||||
// device_sound_interface overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
public:
|
||||
DECLARE_WRITE8_MEMBER( wave_w );
|
||||
|
||||
|
@ -55,6 +55,17 @@ void segapcm_device::device_start()
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_bank_updated - the rom bank has changed
|
||||
//-------------------------------------------------
|
||||
|
||||
void segapcm_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_stream_update - handle a stream update
|
||||
//-------------------------------------------------
|
||||
|
@ -55,6 +55,9 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<UINT8[]> m_ram;
|
||||
UINT8 m_low[16];
|
||||
|
@ -263,6 +263,11 @@ void vlm5030_device::device_reset()
|
||||
setup_parameter( 0x00);
|
||||
}
|
||||
|
||||
void vlm5030_device::rom_bank_updated()
|
||||
{
|
||||
m_channel->update();
|
||||
}
|
||||
|
||||
int vlm5030_device::get_bits(int sbit,int bits)
|
||||
{
|
||||
int offset = m_address + (sbit>>3);
|
||||
|
@ -35,6 +35,9 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
// configuration state
|
||||
const address_space_config m_space_config;
|
||||
|
@ -841,6 +841,11 @@ void ymf278b_device::device_stop()
|
||||
m_ymf262 = nullptr;
|
||||
}
|
||||
|
||||
void ymf278b_device::rom_bank_updated()
|
||||
{
|
||||
m_stream->update();
|
||||
}
|
||||
|
||||
void ymf278b_device::precompute_rate_tables()
|
||||
{
|
||||
int i;
|
||||
|
@ -39,6 +39,9 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
// device_rom_interface overrides
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
struct YMF278BSlot
|
||||
{
|
||||
|
@ -16,6 +16,10 @@ const address_space_config *device_rom_interface::memory_space_config(address_sp
|
||||
return spacenum ? nullptr : &m_rom_config;
|
||||
}
|
||||
|
||||
void device_rom_interface::rom_bank_updated()
|
||||
{
|
||||
}
|
||||
|
||||
void device_rom_interface::set_rom_bank(int bank)
|
||||
{
|
||||
if(!m_bank)
|
||||
@ -28,6 +32,7 @@ void device_rom_interface::set_rom_bank(int bank)
|
||||
|
||||
m_cur_bank = bank;
|
||||
m_bank->set_entry(bank);
|
||||
rom_bank_updated();
|
||||
}
|
||||
|
||||
void device_rom_interface::reset_bank()
|
||||
|
@ -31,6 +31,9 @@ public:
|
||||
void set_rom(const void *base, UINT32 size);
|
||||
void set_rom_bank(int bank);
|
||||
|
||||
protected:
|
||||
virtual void rom_bank_updated() = 0;
|
||||
|
||||
private:
|
||||
const address_space_config m_rom_config;
|
||||
direct_read_data *m_rom_direct;
|
||||
|
@ -154,8 +154,8 @@ WRITE16_MEMBER(k3_state::k3_scrolly_w)
|
||||
|
||||
WRITE16_MEMBER(k3_state::k3_soundbanks_w)
|
||||
{
|
||||
m_oki2->set_bank_base((data & 4) ? 0x40000 : 0);
|
||||
m_oki1->set_bank_base((data & 2) ? 0x40000 : 0);
|
||||
m_oki2->set_rom_bank((data & 4) >> 2);
|
||||
m_oki1->set_rom_bank((data & 2) >> 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(k3_state::flagrall_soundbanks_w)
|
||||
@ -176,7 +176,7 @@ WRITE16_MEMBER(k3_state::flagrall_soundbanks_w)
|
||||
if (data & 0xfcc9)
|
||||
popmessage("unk control %04x", data & 0xfcc9);
|
||||
|
||||
m_oki1->set_bank_base(0x40000 * ((data & 0x6)>>1) );
|
||||
m_oki1->set_rom_bank((data & 0x6) >> 1);
|
||||
|
||||
}
|
||||
|
||||
|
@ -130,7 +130,7 @@ READ8_MEMBER(namco_30test_state::hc11_okibank_r)
|
||||
WRITE8_MEMBER(namco_30test_state::hc11_okibank_w)
|
||||
{
|
||||
m_oki_bank = data;
|
||||
m_oki->set_bank_base((data & 1) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -155,7 +155,7 @@ WRITE16_MEMBER(_3x3puzzle_state::gfx_ctrl_w)
|
||||
if ( (data&0x06) != m_oki_bank )
|
||||
{
|
||||
m_oki_bank = data &0x6;
|
||||
m_oki->set_bank_base((m_oki_bank>>1) * 0x40000);
|
||||
m_oki->set_rom_bank(m_oki_bank >> 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -418,8 +418,8 @@ WRITE16_MEMBER(acommand_state::ac_devices_w)
|
||||
case 0x00/2:
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base(0x40000 * (data & 0x3));
|
||||
m_oki2->set_bank_base(0x40000 * (data & 0x30) >> 4);
|
||||
m_oki1->set_rom_bank(data & 0x3);
|
||||
m_oki2->set_rom_bank((data & 0x30) >> 4);
|
||||
}
|
||||
break;
|
||||
case 0x14/2:
|
||||
|
@ -114,7 +114,7 @@ WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
|
||||
|
||||
WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (data & 3));
|
||||
m_oki->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
/*TODO: sound banking. */
|
||||
|
@ -131,7 +131,7 @@ WRITE16_MEMBER(arcadecl_state::latch_w)
|
||||
/* lower byte being modified? */
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank((data >> 7) & 1);
|
||||
m_oki->set_output_gain(ALL_OUTPUTS, (data & 0x001f) / 31.0f);
|
||||
}
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ WRITE16_MEMBER(artmagic_state::control_w)
|
||||
/* OKI banking here */
|
||||
if (offset == 0)
|
||||
{
|
||||
m_oki->set_bank_base((((data >> 4) & 1) * 0x40000) % m_oki_region->bytes());
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
}
|
||||
|
||||
logerror("%06X:control_w(%d) = %04X\n", space.device().safe_pc(), offset, data);
|
||||
|
@ -205,7 +205,7 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_sound_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data >> 8) & 1));
|
||||
m_oki->set_rom_bank((data >> 8) & 1);
|
||||
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
|
||||
}
|
||||
}
|
||||
@ -214,7 +214,7 @@ WRITE16_MEMBER(astrocorp_state::skilldrp_sound_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (data & 1));
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
|
||||
}
|
||||
}
|
||||
|
@ -239,7 +239,7 @@ WRITE16_MEMBER(bestleag_state::fgram_w)
|
||||
|
||||
WRITE16_MEMBER(bestleag_state::oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data & 3) - 1));
|
||||
m_oki->set_rom_bank((data - 1) & 3);
|
||||
}
|
||||
|
||||
|
||||
|
@ -298,8 +298,8 @@ GFXDECODE_END
|
||||
|
||||
WRITE8_MEMBER(boogwing_state::sound_bankswitch_w)
|
||||
{
|
||||
m_oki2->set_bank_base(((data & 2) >> 1) * 0x40000);
|
||||
m_oki1->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki2->set_rom_bank((data & 2) >> 1);
|
||||
m_oki1->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -856,7 +856,7 @@ WRITE16_MEMBER(cave_state::ppsatan_out_w)
|
||||
output().set_led_value(6, data & 0x0400); // not tested in service mode
|
||||
output().set_led_value(7, data & 0x0800); // not tested in service mode
|
||||
|
||||
m_oki->set_bank_base((data & 0x8000) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data & 0x8000) >> 15);
|
||||
}
|
||||
|
||||
// popmessage("OUT %04x", data);
|
||||
|
@ -114,7 +114,7 @@ WRITE16_MEMBER( cesclassic_state::outputs_w )
|
||||
--x- ---- probably screen enable
|
||||
---- --x- coin counter
|
||||
*/
|
||||
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data & 0x40) >> 6);
|
||||
machine().bookkeeping().coin_counter_w(0, data & 2);
|
||||
if(data & ~0x62)
|
||||
logerror("Output: %02x\n",data);
|
||||
|
@ -410,8 +410,8 @@ WRITE16_MEMBER(cischeat_state::scudhamm_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base(0x40000 * ((data >> 0) & 0x3) );
|
||||
m_oki2->set_bank_base(0x40000 * ((data >> 4) & 0x3) );
|
||||
m_oki1->set_rom_bank((data >> 0) & 0x3);
|
||||
m_oki2->set_rom_bank((data >> 4) & 0x3);
|
||||
}
|
||||
}
|
||||
|
||||
@ -758,8 +758,8 @@ WRITE16_MEMBER(cischeat_state::bigrun_soundbank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base(0x40000 * ((data >> 0) & 1) );
|
||||
m_oki2->set_bank_base(0x40000 * ((data >> 4) & 1) );
|
||||
m_oki1->set_rom_bank((data >> 0) & 1);
|
||||
m_oki2->set_rom_bank((data >> 4) & 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -780,13 +780,14 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE16_MEMBER(cischeat_state::cischeat_soundbank_1_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7) m_oki1->set_bank_base(0x40000 * (data & 1) );
|
||||
if (ACCESSING_BITS_0_7) m_oki1->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cischeat_state::cischeat_soundbank_2_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7) m_oki2->set_bank_base(0x40000 * (data & 1) );
|
||||
if (ACCESSING_BITS_0_7) m_oki2->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( cischeat_sound_map, AS_PROGRAM, 16, cischeat_state )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x040002, 0x040003) AM_WRITE(cischeat_soundbank_1_w) // Sample Banking
|
||||
|
@ -782,7 +782,7 @@ GFXDECODE_END
|
||||
WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
|
||||
{
|
||||
/* the second OKIM6295 ROM is bank switched */
|
||||
m_oki2->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki2->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
/**********************************************************************************/
|
||||
|
@ -523,7 +523,7 @@ GFXDECODE_END
|
||||
WRITE8_MEMBER(dassault_state::sound_bankswitch_w)
|
||||
{
|
||||
/* the second OKIM6295 ROM is bank switched */
|
||||
m_oki2->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki2->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
/**********************************************************************************/
|
||||
|
@ -1808,14 +1808,14 @@ WRITE16_MEMBER(ddenlovr_state::ddenlovr16_transparency_mask_w)
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::quizchq_oki_bank_w )
|
||||
{
|
||||
m_oki->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ddenlovr_state::ddenlovr_oki_bank_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 7) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 7);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1826,7 +1826,7 @@ WRITE16_MEMBER(ddenlovr_state::quiz365_oki_bank1_w )
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_okibank = (m_okibank & 2) | (data & 1);
|
||||
m_oki->set_bank_base(m_okibank * 0x40000);
|
||||
m_oki->set_rom_bank(m_okibank);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1835,7 +1835,7 @@ WRITE16_MEMBER(ddenlovr_state::quiz365_oki_bank2_w )
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_okibank = (m_okibank & 1) | ((data & 1) << 1);
|
||||
m_oki->set_bank_base(m_okibank * 0x40000);
|
||||
m_oki->set_rom_bank(m_okibank);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2078,7 +2078,7 @@ READ16_MEMBER(ddenlovr_state::ddenlovrk_protection2_r)
|
||||
WRITE16_MEMBER(ddenlovr_state::ddenlovrk_protection2_w)
|
||||
{
|
||||
COMBINE_DATA(m_protection2);
|
||||
m_oki->set_bank_base(((*m_protection2) & 0x7) * 0x40000);
|
||||
m_oki->set_rom_bank((*m_protection2) & 0x7);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16, ddenlovr_state )
|
||||
@ -2199,7 +2199,7 @@ WRITE16_MEMBER(ddenlovr_state::nettoqc_oki_bank_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 3) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 3);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2249,7 +2249,7 @@ READ16_MEMBER(ddenlovr_state::ultrchmp_protection2_r)
|
||||
WRITE16_MEMBER(ddenlovr_state::ultrchmp_protection2_w)
|
||||
{
|
||||
// COMBINE_DATA(m_protection2);
|
||||
m_oki->set_bank_base((data & 0xf) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 0xf);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( ultrchmp_map, AS_PROGRAM, 16, ddenlovr_state )
|
||||
@ -2791,7 +2791,7 @@ WRITE8_MEMBER(ddenlovr_state::hanakanz_palette_w)
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::hanakanz_oki_bank_w )
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 6) & 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(ddenlovr_state::hanakanz_rand_r)
|
||||
@ -3018,7 +3018,7 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_coincounter_w)
|
||||
WRITE8_MEMBER(ddenlovr_state::mjchuuka_oki_bank_w )
|
||||
{
|
||||
// data & 0x08 ?
|
||||
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
// popmessage("1e = %02x",data);
|
||||
@ -3714,9 +3714,7 @@ WRITE16_MEMBER(ddenlovr_state::akamaru_protection1_w)
|
||||
COMBINE_DATA(&m_prot_16);
|
||||
// BCD number?
|
||||
bank = (((m_prot_16 >> 4) & 0x0f) % 10) * 10 + ((m_prot_16 & 0x0f) % 10);
|
||||
if (bank >= 12)
|
||||
bank = 0;
|
||||
m_oki->set_bank_base(bank * 0x40000);
|
||||
m_oki->set_rom_bank(bank);
|
||||
|
||||
// popmessage("bank $%0x (%d)", m_prot_16, bank);
|
||||
}
|
||||
@ -3803,7 +3801,7 @@ WRITE8_MEMBER(ddenlovr_state::mjflove_rombank_w)
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::mjflove_okibank_w )
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x07) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 0x07);
|
||||
//popmessage("SOUND = %02x", data);
|
||||
}
|
||||
|
||||
@ -3886,7 +3884,7 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::jongtei_okibank_w )
|
||||
{
|
||||
m_oki->set_bank_base(((data >> 4) & 0x07) * 0x40000);
|
||||
m_oki->set_rom_bank((data >> 4) & 0x07);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::jongtei_dsw_keyb_w)
|
||||
@ -4501,7 +4499,7 @@ READ8_MEMBER(ddenlovr_state::momotaro_protection_r)
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::daimyojn_okibank_w )
|
||||
{
|
||||
m_oki->set_bank_base(((data >> 4) & 0x01) * 0x40000);
|
||||
m_oki->set_rom_bank((data >> 4) & 0x01);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ddenlovr_state::daimyojn_palette_sel_w)
|
||||
|
@ -197,7 +197,7 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated)
|
||||
|
||||
WRITE8_MEMBER(ddragon3_state::oki_bankswitch_w)
|
||||
{
|
||||
m_oki->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)
|
||||
|
@ -104,14 +104,14 @@ WRITE32_MEMBER(deco156_state::hvysmsh_eeprom_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * (data & 0x7));
|
||||
m_oki2->set_rom_bank(data & 0x7);
|
||||
ioport("EEPROMOUT")->write(data, 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(deco156_state::hvysmsh_oki_0_bank_w)
|
||||
{
|
||||
m_oki1->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki1->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(deco156_state::wcvol95_nonbuffered_palette_w)
|
||||
|
@ -1759,8 +1759,8 @@ WRITE_LINE_MEMBER(deco32_state::sound_irq_nslasher)
|
||||
|
||||
WRITE8_MEMBER(deco32_state::sound_bankswitch_w)
|
||||
{
|
||||
m_oki1->set_bank_base(((data >> 0)& 1) * 0x40000);
|
||||
m_oki2->set_bank_base(((data >> 1)& 1) * 0x40000);
|
||||
m_oki1->set_rom_bank((data >> 0) & 1);
|
||||
m_oki2->set_rom_bank((data >> 1) & 1);
|
||||
}
|
||||
|
||||
/**********************************************************************************/
|
||||
|
@ -62,7 +62,7 @@ WRITE16_MEMBER(deniam_state::sound_command_w)
|
||||
|
||||
WRITE8_MEMBER(deniam_state::deniam16b_oki_rom_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank((data >> 6) & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
|
||||
@ -70,7 +70,7 @@ WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
if ((data&0xFE) != 0) popmessage("OKI bank was not 0 or 1! contact MAMEDEV!");
|
||||
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank(data & 0x01);
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ void deniam_state::machine_reset()
|
||||
doesn't matter since the coinup sfx (sample borrowed from 'tyrian' on PC)
|
||||
exists in both banks; it properly sets the bank as soon as the ufo sfx
|
||||
plays or a player character is selected on the character select screen */
|
||||
m_oki->set_bank_base(0x00000);
|
||||
m_oki->set_rom_bank(0);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( deniam16b, deniam_state )
|
||||
|
@ -151,7 +151,7 @@ WRITE8_MEMBER(diverboy_state::okibank_w)
|
||||
{
|
||||
/* bit 2 might be reset */
|
||||
// popmessage("%02x",data);
|
||||
m_oki->set_bank_base((data & 3) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
|
||||
|
@ -149,14 +149,14 @@ WRITE8_MEMBER(drgnmst_state::drgnmst_snd_control_w)
|
||||
m_oki0_bank = oki_new_bank;
|
||||
if (m_oki0_bank)
|
||||
oki_new_bank--;
|
||||
m_oki_1->set_bank_base(oki_new_bank * 0x40000);
|
||||
m_oki_1->set_rom_bank(oki_new_bank);
|
||||
}
|
||||
|
||||
oki_new_bank = ((m_pic16c5x_port0 & 0x3) >> 0) | ((m_oki_control & 0x20) >> 3);
|
||||
if (oki_new_bank != m_oki1_bank)
|
||||
{
|
||||
m_oki1_bank = oki_new_bank;
|
||||
m_oki_2->set_bank_base(oki_new_bank * 0x40000);
|
||||
m_oki_2->set_rom_bank(oki_new_bank);
|
||||
}
|
||||
|
||||
switch (m_oki_control & 0x1f)
|
||||
|
@ -164,7 +164,7 @@ WRITE16_MEMBER(drtomy_state::drtomy_okibank_w)
|
||||
if (m_oki_bank != (data & 3))
|
||||
{
|
||||
m_oki_bank = data & 3;
|
||||
m_oki->set_bank_base(m_oki_bank * 0x40000);
|
||||
m_oki->set_rom_bank(m_oki_bank);
|
||||
}
|
||||
|
||||
/* unknown bit 2 -> (data & 4) */
|
||||
|
@ -1556,7 +1556,7 @@ WRITE8_MEMBER(dynax_state::cdracula_sound_rombank_w)
|
||||
|
||||
int num_banks = memregion("oki")->bytes() / 0x40000;
|
||||
if (data < num_banks)
|
||||
m_oki->set_bank_base(data * 0x40000);
|
||||
m_oki->set_rom_bank(data);
|
||||
else
|
||||
logerror("%s: warning, invalid sound bank = %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ READ8_MEMBER(egghunt_state::egghunt_okibanking_r)
|
||||
WRITE8_MEMBER(egghunt_state::egghunt_okibanking_w)
|
||||
{
|
||||
m_okibanking = data;
|
||||
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8, egghunt_state )
|
||||
|
@ -163,7 +163,7 @@ WRITE32_MEMBER(feversoc_state::output_w)
|
||||
//data>>16 & 2 coin out
|
||||
machine().bookkeeping().coin_counter_w(1,data>>16 & 4);
|
||||
//data>>16 & 8 coin hopper
|
||||
m_oki->set_bank_base(0x40000 * (((data>>16) & 0x20)>>5));
|
||||
m_oki->set_rom_bank(((data>>16) & 0x20)>>5);
|
||||
|
||||
m_eeprom->di_write((data & 0x80000000) ? 1 : 0);
|
||||
m_eeprom->clk_write((data & 0x40000000) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
@ -74,7 +74,7 @@ WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
|
||||
|
||||
WRITE8_MEMBER(funybubl_state::funybubl_oki_bank_sw)
|
||||
{
|
||||
m_oki->set_bank_base(((data & 1) * 0x40000));
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -126,7 +126,7 @@ WRITE8_MEMBER(fuuki16_state::oki_banking_w)
|
||||
data & 0x10 is always set
|
||||
*/
|
||||
|
||||
m_oki->set_bank_base(((data & 6) >> 1) * 0x40000);
|
||||
m_oki->set_rom_bank((data & 6) >> 1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( fuuki16_sound_map, AS_PROGRAM, 8, fuuki16_state )
|
||||
|
@ -338,7 +338,7 @@ WRITE8_MEMBER(galpani2_state::galpani2_oki1_bank_w)
|
||||
|
||||
WRITE8_MEMBER(galpani2_state::galpani2_oki2_bank_w)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * (data & 0xf) );
|
||||
m_oki2->set_rom_bank(data & 0xf);
|
||||
logerror("%s : %s bank %08X\n",machine().describe_context(),tag(),data);
|
||||
}
|
||||
|
||||
|
@ -177,7 +177,7 @@ WRITE16_MEMBER(gcpinbal_state::ioc_w)
|
||||
// MSM6585 bank, coin LEDs, maybe others?
|
||||
case 0x44:
|
||||
m_msm_bank = data & 0x1000 ? 0x100000 : 0;
|
||||
m_oki->set_bank_base(0x40000 * ((data & 0x800 )>> 11));
|
||||
m_oki->set_rom_bank((data & 0x800) >> 11);
|
||||
break;
|
||||
|
||||
case 0x45:
|
||||
|
@ -58,7 +58,7 @@ WRITE8_MEMBER(ggconnie_state::output_w)
|
||||
/* TODO: banking not understood (is the ROM dumped correctly btw?) */
|
||||
WRITE8_MEMBER(ggconnie_state::oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base((data) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank(data != 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -91,7 +91,7 @@ WRITE16_MEMBER(gotcha_state::gotcha_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_oki->set_bank_base((((~data & 0x0100) >> 8) * 0x40000));
|
||||
m_oki->set_rom_bank((~data & 0x0100) >> 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -351,8 +351,8 @@ WRITE32_MEMBER(gstream_state::gstream_oki_banking_w)
|
||||
|
||||
//popmessage("oki bank = %X\noki_1 = %X\noki_2 = %X\n",data, m_oki_bank_1, m_oki_bank_2);
|
||||
|
||||
m_oki_1->set_bank_base(m_oki_bank_1 * 0x40000);
|
||||
m_oki_2->set_bank_base(m_oki_bank_2 * 0x40000);
|
||||
m_oki_1->set_rom_bank(m_oki_bank_1);
|
||||
m_oki_2->set_rom_bank(m_oki_bank_2);
|
||||
}
|
||||
|
||||
// Some clocking?
|
||||
|
@ -1270,7 +1270,7 @@ WRITE8_MEMBER(gunpey_state::gunpey_output_w)
|
||||
//bit 0 is coin counter
|
||||
// popmessage("%02x",data);
|
||||
|
||||
m_oki->set_bank_base(((data & 0x70)>>4) * 0x40000);
|
||||
m_oki->set_rom_bank((data & 0x70) >> 4);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(gunpey_state::gunpey_vram_bank_w)
|
||||
|
@ -1574,7 +1574,7 @@ WRITE16_MEMBER(igs011_state::lhb2_igs003_w)
|
||||
{
|
||||
m_lhb2_pen_hi = data & 0x07;
|
||||
|
||||
m_oki->set_bank_base((data & 0x08) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 3) & 1);
|
||||
}
|
||||
|
||||
if ( m_lhb2_pen_hi & ~0xf )
|
||||
@ -1708,7 +1708,7 @@ WRITE16_MEMBER(igs011_state::wlcc_igs003_w)
|
||||
machine().bookkeeping().coin_counter_w(0, data & 0x01);
|
||||
// coin out data & 0x02
|
||||
|
||||
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
m_igs_hopper = data & 0x20;
|
||||
}
|
||||
|
||||
@ -2442,7 +2442,7 @@ WRITE16_MEMBER(igs011_state::lhb_okibank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x200) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 9) & 1);
|
||||
}
|
||||
|
||||
if ( data & (~0x200) )
|
||||
|
@ -1176,7 +1176,7 @@ void igs017_state::mgcs_igs029_run()
|
||||
switch (port)
|
||||
{
|
||||
case 0x01:
|
||||
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
machine().bookkeeping().coin_counter_w(0, (~data) & 0x20); // coin in
|
||||
machine().bookkeeping().coin_counter_w(1, (~data) & 0x40); // coin out
|
||||
|
||||
@ -1465,7 +1465,7 @@ WRITE16_MEMBER(igs017_state::sdmg2_magic_w)
|
||||
case 0x02:
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 7) & 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1561,7 +1561,7 @@ WRITE16_MEMBER(igs017_state::mgdha_magic_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
// bit 7?
|
||||
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 6) & 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1640,7 +1640,7 @@ WRITE8_MEMBER(igs017_state::tjsb_output_w)
|
||||
break;
|
||||
|
||||
case 0x02:
|
||||
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0); // oki bank (0x20/0x30)
|
||||
m_oki->set_rom_bank((data >> 4) & 1); // oki bank (0x20/0x30)
|
||||
if (!(data & ~0x30))
|
||||
return;
|
||||
break;
|
||||
@ -1765,7 +1765,7 @@ WRITE16_MEMBER(igs017_state::lhzb2_magic_w)
|
||||
case 0x01:
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 7) & 1);
|
||||
|
||||
if ( data & 0x7f )
|
||||
logerror("%s: warning, unknown bits written in oki bank = %04x\n", machine().describe_context(), data);
|
||||
@ -2106,7 +2106,7 @@ WRITE16_MEMBER(igs017_state::lhzb2a_input_select_w)
|
||||
}
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x0100) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 8) & 1);
|
||||
|
||||
if ( data & 0x0fe00 )
|
||||
logerror("%s: warning, unknown bits written in input_select = %04x\n", machine().describe_context(), data);
|
||||
@ -2147,7 +2147,7 @@ WRITE16_MEMBER(igs017_state::slqz2_magic_w)
|
||||
case 0x00:
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank(data & 0x01);
|
||||
|
||||
// m_hopper = data & 0x20; // hopper motor
|
||||
// machine().bookkeeping().coin_counter_w(1, data & 0x40); // coin out counter
|
||||
|
@ -363,7 +363,7 @@ READ16_MEMBER(joystand_state::fpga_r)
|
||||
WRITE16_MEMBER(joystand_state::oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
m_oki->set_bank_base(((data >> 6) & 3) * 0x40000);
|
||||
m_oki->set_rom_bank((data >> 6) & 3);
|
||||
}
|
||||
|
||||
READ16_MEMBER(joystand_state::eeprom_r)
|
||||
|
@ -338,7 +338,7 @@ ADDRESS_MAP_END
|
||||
WRITE16_MEMBER(kaneko16_state::bakubrkr_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7) {
|
||||
m_oki->set_bank_base(0x40000 * (data & 0x7) );
|
||||
m_oki->set_rom_bank(data & 0x7);
|
||||
logerror("%s:Selecting OKI bank %02X\n",machine().describe_context(),data&0xff);
|
||||
}
|
||||
}
|
||||
@ -400,7 +400,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base(0x40000 * (data & 0xf) );
|
||||
m_oki1->set_rom_bank(data & 0xf);
|
||||
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",space.device().safe_pc(),data);
|
||||
}
|
||||
}
|
||||
@ -409,7 +409,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * data );
|
||||
m_oki2->set_rom_bank(data);
|
||||
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",space.device().safe_pc(),data);
|
||||
}
|
||||
}
|
||||
@ -464,7 +464,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base(0x40000 * (data & 0xF));
|
||||
m_oki1->set_rom_bank(data & 0xf);
|
||||
logerror("%s: OKI0 bank %08X\n",machine().describe_context(),data);
|
||||
}
|
||||
}
|
||||
@ -473,7 +473,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * data );
|
||||
m_oki2->set_rom_bank(data);
|
||||
logerror("%s: OKI1 bank %08X\n",machine().describe_context(),data);
|
||||
}
|
||||
}
|
||||
@ -533,7 +533,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base( 0x40000 * (data & 0xF) );
|
||||
m_oki1->set_rom_bank(data & 0xf);
|
||||
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",space.device().safe_pc(),data);
|
||||
}
|
||||
}
|
||||
@ -542,7 +542,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki2->set_bank_base( 0x40000 * (data & 0x1) );
|
||||
m_oki2->set_rom_bank(data & 0x1);
|
||||
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",space.device().safe_pc(),data);
|
||||
}
|
||||
}
|
||||
@ -778,7 +778,7 @@ ADDRESS_MAP_END
|
||||
WRITE8_MEMBER(kaneko16_state::wingforc_oki_bank_w)
|
||||
{
|
||||
if (data <= 2)
|
||||
m_oki->set_bank_base(0x40000 * data);
|
||||
m_oki->set_rom_bank(data);
|
||||
else
|
||||
logerror("%s: unknown OKI bank %02X\n", machine().describe_context(), data);
|
||||
}
|
||||
|
@ -213,10 +213,10 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
|
||||
|
||||
switch (data)
|
||||
{
|
||||
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 0xfc: m_oki->set_rom_bank(0); break;
|
||||
case 0xfd: m_oki->set_rom_bank(2); break;
|
||||
case 0xfe: m_oki->set_rom_bank(1); break;
|
||||
case 0xff: m_oki->set_rom_bank(3); break;
|
||||
case 0x78:
|
||||
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;
|
||||
@ -335,7 +335,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
|
||||
if (m_m6295_bank == 0x03)
|
||||
m_m6295_bank = 0x00;
|
||||
popmessage("Changing Bank to %02x", m_m6295_bank);
|
||||
m_adpcm->set_bank_base(((m_m6295_bank) * 0x40000));
|
||||
m_adpcm->set_rom_bank(m_m6295_bank);
|
||||
|
||||
if (m_m6295_key_delay == 0xffff)
|
||||
m_m6295_key_delay = 0x00;
|
||||
@ -354,7 +354,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
|
||||
if (m_m6295_bank == 0x03)
|
||||
m_m6295_bank = 0x02;
|
||||
popmessage("Changing Bank to %02x", m_m6295_bank);
|
||||
m_adpcm->set_bank_base(((m_m6295_bank) * 0x40000));
|
||||
m_adpcm->set_rom_bank(m_m6295_bank);
|
||||
|
||||
if (m_m6295_key_delay == 0xffff)
|
||||
m_m6295_key_delay = 0x00;
|
||||
@ -370,11 +370,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
|
||||
{
|
||||
m_m6295_comm += 1;
|
||||
m_m6295_comm &= 0x7f;
|
||||
if (m_m6295_comm == 0x00) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x60) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x65) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x69) { m_adpcm->set_bank_base((2 * 0x40000)); m_m6295_bank = 2; }
|
||||
if (m_m6295_comm == 0x70) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x00) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x60) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x65) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x69) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; }
|
||||
if (m_m6295_comm == 0x70) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
|
||||
popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank);
|
||||
|
||||
if (m_m6295_key_delay == 0xffff)
|
||||
@ -391,11 +391,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
|
||||
{
|
||||
m_m6295_comm -= 1;
|
||||
m_m6295_comm &= 0x7f;
|
||||
if (m_m6295_comm == 0x2b) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x64) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x68) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x6c) { m_adpcm->set_bank_base((2 * 0x40000)); m_m6295_bank = 2; }
|
||||
if (m_m6295_comm == 0x76) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x2b) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x64) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
|
||||
if (m_m6295_comm == 0x68) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
|
||||
if (m_m6295_comm == 0x6c) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; }
|
||||
if (m_m6295_comm == 0x76) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
|
||||
popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank);
|
||||
|
||||
if (m_m6295_key_delay == 0xffff)
|
||||
|
@ -352,7 +352,7 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(lordgun_state::lordgun_okibank_w)
|
||||
{
|
||||
m_oki->set_bank_base((data & 2) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank((data >> 1) & 1);
|
||||
if (data & ~3) logerror("%s: unknown okibank bits %02x\n", machine().describe_context(), data);
|
||||
// popmessage("OKI %x", data);
|
||||
}
|
||||
|
@ -418,7 +418,7 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE16_MEMBER(m92_state::oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
|
||||
m_oki->set_rom_bank((data+1) & 0x3); // +1?
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )
|
||||
|
@ -1171,7 +1171,7 @@ ADDRESS_MAP_END
|
||||
void metro_state::gakusai_oki_bank_set()
|
||||
{
|
||||
int bank = (m_gakusai_oki_bank_lo & 7) + (m_gakusai_oki_bank_hi & 1) * 8;
|
||||
m_oki->set_bank_base(bank * 0x40000);
|
||||
m_oki->set_rom_bank(bank);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(metro_state::gakusai_oki_bank_hi_w)
|
||||
|
@ -139,7 +139,7 @@ Notes:
|
||||
WRITE8_MEMBER(midyunit_state::yawdim_oki_bank_w)
|
||||
{
|
||||
if (data & 4)
|
||||
m_oki->set_bank_base(0x40000 * (data & 3));
|
||||
m_oki->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
|
||||
|
@ -133,13 +133,13 @@ READ16_MEMBER(miragemi_state::mirage_input_r)
|
||||
|
||||
WRITE16_MEMBER(miragemi_state::okim1_rombank_w)
|
||||
{
|
||||
m_oki_sfx->set_bank_base(0x40000 * (data & 0x3));
|
||||
m_oki_sfx->set_rom_bank(data & 0x3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(miragemi_state::okim0_rombank_w)
|
||||
{
|
||||
/*bits 4-6 used on POST? */
|
||||
m_oki_bgm->set_bank_base(0x40000 * (data & 0x7));
|
||||
m_oki_bgm->set_rom_bank(data & 0x7);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16, miragemi_state )
|
||||
|
@ -400,7 +400,7 @@ ADDRESS_MAP_END
|
||||
/**** Monsters World ****/
|
||||
WRITE8_MEMBER(mitchell_state::oki_banking_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (data & 3));
|
||||
m_oki->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( mstworld_sound_map, AS_PROGRAM, 8, mitchell_state )
|
||||
|
@ -314,7 +314,7 @@ WRITE16_MEMBER(moo_state::moobl_oki_bank_w)
|
||||
{
|
||||
logerror("%x to OKI bank\n", data);
|
||||
|
||||
m_oki->set_bank_base((data & 0x0f) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 0x0f);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )
|
||||
|
@ -145,7 +145,7 @@ WRITE16_MEMBER(mwarr_state::tx_videoram_w)
|
||||
|
||||
WRITE16_MEMBER(mwarr_state::oki1_bank_w)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * (data & 3));
|
||||
m_oki2->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mwarr_state::sprites_commands_w)
|
||||
|
@ -345,7 +345,7 @@ WRITE16_MEMBER(nmg5_state::priority_reg_w)
|
||||
|
||||
WRITE8_MEMBER(nmg5_state::oki_banking_w)
|
||||
{
|
||||
m_oki->set_bank_base((data & 1) ? 0x40000 : 0);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
|
@ -5025,9 +5025,9 @@ ADDRESS_MAP_END
|
||||
WRITE8_MEMBER(nmk16_state::spec2k_oki1_banking_w)
|
||||
{
|
||||
if(data == 0xfe)
|
||||
m_oki2->set_bank_base(0);
|
||||
m_oki2->set_rom_bank(0);
|
||||
else if(data == 0xff)
|
||||
m_oki2->set_bank_base(0x40000);
|
||||
m_oki2->set_rom_bank(1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8, nmk16_state )
|
||||
@ -5053,7 +5053,7 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(nmk16_state::twinactn_oki_bank_w)
|
||||
{
|
||||
m_oki1->set_bank_base((data & 3) * 0x40000);
|
||||
m_oki1->set_rom_bank(data & 3);
|
||||
|
||||
if (data & (~3))
|
||||
logerror("%s: invalid oki bank %02x\n", machine().describe_context(), data);
|
||||
|
@ -96,7 +96,7 @@ WRITE16_MEMBER(oneshot_state::soundbank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data & 0x03) ^ 0x03));
|
||||
m_oki->set_rom_bank((data & 0x03) ^ 0x03);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -115,7 +115,7 @@ WRITE8_MEMBER(paradise_state::paradise_okibank_w)
|
||||
if (data & ~0x02)
|
||||
logerror("%s: unknown oki bank bits %02X\n", machine().describe_context(), data);
|
||||
|
||||
m_oki2->set_bank_base((data & 0x02) ? 0x40000 : 0);
|
||||
m_oki2->set_rom_bank((data & 0x02) >> 1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(paradise_state::torus_coin_counter_w)
|
||||
|
@ -201,13 +201,13 @@ WRITE16_MEMBER(pasha2_state::bitmap_1_w)
|
||||
WRITE16_MEMBER(pasha2_state::oki1_bank_w)
|
||||
{
|
||||
if (offset)
|
||||
m_oki1->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki1->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(pasha2_state::oki2_bank_w)
|
||||
{
|
||||
if (offset)
|
||||
m_oki2->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki2->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(pasha2_state::pasha2_lamps_w)
|
||||
|
@ -106,7 +106,7 @@ WRITE16_MEMBER(pirates_state::out_w)
|
||||
m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
/* bit 6 selects oki bank */
|
||||
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank((data >> 6) & 1);
|
||||
|
||||
/* bit 7 used (function unknown) */
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ bootleg todo:
|
||||
|
||||
WRITE16_MEMBER(pktgaldx_state::pktgaldx_oki_bank_w)
|
||||
{
|
||||
m_oki2->set_bank_base((data & 3) * 0x40000);
|
||||
m_oki2->set_rom_bank(data & 3);
|
||||
}
|
||||
|
||||
/**********************************************************************************/
|
||||
|
@ -215,7 +215,7 @@ WRITE8_MEMBER(playmark_state::playmark_oki_banking_w)
|
||||
|
||||
if (((m_old_oki_bank - 1) * 0x40000) < memregion("oki")->bytes())
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (m_old_oki_bank - 1));
|
||||
m_oki->set_rom_bank(m_old_oki_bank - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -260,7 +260,7 @@ WRITE8_MEMBER(playmark_state::hrdtimes_snd_control_w)
|
||||
|
||||
if ((m_old_oki_bank * 0x40000) < memregion("oki")->bytes())
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * m_old_oki_bank);
|
||||
m_oki->set_rom_bank(m_old_oki_bank);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,10 +80,10 @@ WRITE16_MEMBER(powerbal_state::oki_banking)
|
||||
{
|
||||
if (data & 3)
|
||||
{
|
||||
int addr = 0x40000 * ((data & 3) - 1);
|
||||
int addr = (data & 3) - 1;
|
||||
|
||||
if (addr < memregion("oki")->bytes())
|
||||
m_oki->set_bank_base(addr);
|
||||
if (addr * 0x40000 < memregion("oki")->bytes())
|
||||
m_oki->set_rom_bank(addr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -220,7 +220,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w)
|
||||
|
||||
WRITE16_MEMBER(pzletime_state::oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (data & 0x3));
|
||||
m_oki->set_rom_bank(data & 0x3);
|
||||
}
|
||||
|
||||
CUSTOM_INPUT_MEMBER(pzletime_state::ticket_status_r)
|
||||
|
@ -756,8 +756,8 @@ GFXDECODE_END
|
||||
|
||||
WRITE8_MEMBER(rohga_state::sound_bankswitch_w)
|
||||
{
|
||||
m_oki1->set_bank_base(BIT(data, 0) * 0x40000);
|
||||
m_oki2->set_bank_base(BIT(data, 1) * 0x40000);
|
||||
m_oki1->set_rom_bank(BIT(data, 0));
|
||||
m_oki2->set_rom_bank(BIT(data, 1));
|
||||
}
|
||||
|
||||
/**********************************************************************************/
|
||||
|
@ -915,7 +915,7 @@ WRITE8_MEMBER(seibuspi_state::spi_layerbanks_eeprom_w)
|
||||
|
||||
WRITE8_MEMBER(seibuspi_state::oki_bank_w)
|
||||
{
|
||||
m_oki2->set_bank_base((data & 0x04) ? 0x40000 : 0);
|
||||
m_oki2->set_rom_bank((data >> 2) & 1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(seibuspi_state::z80_prg_transfer_w)
|
||||
|
@ -347,7 +347,7 @@ ADDRESS_MAP_END
|
||||
WRITE8_MEMBER(seicupbl_state::okim_rombank_w)
|
||||
{
|
||||
// popmessage("%08x",0x40000 * (data & 0x07));
|
||||
m_oki->set_bank_base(0x40000 * (data & 0x7));
|
||||
m_oki->set_rom_bank(data & 0x7);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( cupsocbl_sound_mem, AS_PROGRAM, 8, seicupbl_state )
|
||||
|
@ -388,7 +388,7 @@ ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(shadfrce_state::oki_bankswitch_w)
|
||||
{
|
||||
m_oki->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8, shadfrce_state )
|
||||
|
@ -84,7 +84,7 @@ WRITE16_MEMBER(shangha3_state::heberpop_coinctrl_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
/* the sound ROM bank is selected by the main CPU! */
|
||||
m_oki->set_bank_base((data & 0x08) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank((data >> 3) & 1);
|
||||
|
||||
machine().bookkeeping().coin_lockout_w(0,~data & 0x04);
|
||||
machine().bookkeeping().coin_lockout_w(1,~data & 0x04);
|
||||
@ -98,7 +98,7 @@ WRITE16_MEMBER(shangha3_state::blocken_coinctrl_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
/* the sound ROM bank is selected by the main CPU! */
|
||||
m_oki->set_bank_base(((data >> 4) & 3) * 0x40000);
|
||||
m_oki->set_rom_bank((data >> 4) & 3);
|
||||
|
||||
machine().bookkeeping().coin_lockout_w(0,~data & 0x04);
|
||||
machine().bookkeeping().coin_lockout_w(1,~data & 0x04);
|
||||
|
@ -141,7 +141,7 @@ WRITE32_MEMBER(silkroad_state::silk_6295_bank_w)
|
||||
{
|
||||
int bank = (data & 0x3000000) >> 24;
|
||||
if(bank < 3)
|
||||
m_oki1->set_bank_base(0x40000 * (bank));
|
||||
m_oki1->set_rom_bank(bank);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,7 @@ WRITE32_MEMBER(simpl156_state::simpl156_eeprom_w)
|
||||
|
||||
//okibank = data & 0x07;
|
||||
|
||||
m_okimusic->set_bank_base(0x40000 * (data & 0x7));
|
||||
m_okimusic->set_rom_bank(data & 0x7);
|
||||
|
||||
m_eeprom->clk_write(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
|
||||
m_eeprom->di_write(BIT(data, 4));
|
||||
|
@ -367,7 +367,7 @@ WRITE8_MEMBER(snowbros_state::twinadv_oki_bank_w)
|
||||
|
||||
if (data&0xfd) logerror ("Unused bank bits! %02x\n",data);
|
||||
|
||||
m_oki->set_bank_base(bank * 0x40000);
|
||||
m_oki->set_rom_bank(bank);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( twinadv_sound_io_map, AS_IO, 8, snowbros_state )
|
||||
|
@ -317,13 +317,13 @@ WRITE8_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)
|
||||
// m_oki->set_bank_base((1 * 0x40000));
|
||||
// m_oki->set_rom_bank(1);
|
||||
// sslam_snd_bank = 1;
|
||||
sslam_play(0, m_sound);
|
||||
}
|
||||
else if (m_sound >= 0x69) {
|
||||
if (m_snd_bank != 2)
|
||||
m_oki->set_bank_base(2 * 0x40000);
|
||||
m_oki->set_rom_bank(2);
|
||||
m_snd_bank = 2;
|
||||
switch (m_sound)
|
||||
{
|
||||
@ -336,14 +336,14 @@ WRITE8_MEMBER(sslam_state::sslam_snd_w)
|
||||
}
|
||||
else if (m_sound >= 0x65) {
|
||||
if (m_snd_bank != 1)
|
||||
m_oki->set_bank_base(1 * 0x40000);
|
||||
m_oki->set_rom_bank(1);
|
||||
m_snd_bank = 1;
|
||||
m_melody = 4;
|
||||
sslam_play(m_melody, m_sound);
|
||||
}
|
||||
else if (m_sound >= 0x60) {
|
||||
if (m_snd_bank != 0)
|
||||
m_oki->set_bank_base(0 * 0x40000);
|
||||
m_oki->set_rom_bank(0);
|
||||
m_snd_bank = 0;
|
||||
switch (m_sound)
|
||||
{
|
||||
@ -446,7 +446,7 @@ WRITE8_MEMBER(sslam_state::playmark_snd_control_w)
|
||||
if (m_oki_bank != ((data & 3) - 1))
|
||||
{
|
||||
m_oki_bank = (data & 3) - 1;
|
||||
m_oki->set_bank_base(0x40000 * m_oki_bank);
|
||||
m_oki->set_rom_bank(m_oki_bank);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ WRITE16_MEMBER(stlforce_state::eeprom_w)
|
||||
|
||||
WRITE16_MEMBER(stlforce_state::oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data>>8) & 3));
|
||||
m_oki->set_rom_bank((data>>8) & 3);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )
|
||||
|
@ -841,13 +841,13 @@ READ8_MEMBER(subsino2_state::vblank_bit6_r)
|
||||
WRITE8_MEMBER(subsino2_state::oki_bank_bit0_w)
|
||||
{
|
||||
// it writes 0x32 or 0x33
|
||||
m_oki->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(subsino2_state::oki_bank_bit4_w)
|
||||
{
|
||||
// it writes 0x23 or 0x33
|
||||
m_oki->set_bank_base(((data >> 4) & 1) * 0x40000);
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
}
|
||||
|
||||
INTERRUPT_GEN_MEMBER(subsino2_state::am188em_int0_irq)
|
||||
|
@ -618,7 +618,7 @@ READ8_MEMBER(taitof2_state::driveout_sound_command_r)
|
||||
|
||||
void taitof2_state::reset_driveout_sound_region()
|
||||
{
|
||||
m_oki->set_bank_base(m_oki_bank * 0x40000);
|
||||
m_oki->set_rom_bank(m_oki_bank);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(taitof2_state::oki_bank_w)
|
||||
|
@ -399,19 +399,19 @@ WRITE16_MEMBER(tickee_state::sound_bank_w)
|
||||
switch (data & 0xff)
|
||||
{
|
||||
case 0x2c:
|
||||
m_oki->set_bank_base(0x00000);
|
||||
m_oki->set_rom_bank(0);
|
||||
break;
|
||||
|
||||
case 0x2d:
|
||||
m_oki->set_bank_base(0x40000);
|
||||
m_oki->set_rom_bank(1);
|
||||
break;
|
||||
|
||||
case 0x1c:
|
||||
m_oki->set_bank_base(0x80000);
|
||||
m_oki->set_rom_bank(2);
|
||||
break;
|
||||
|
||||
case 0x1d:
|
||||
m_oki->set_bank_base(0xc0000);
|
||||
m_oki->set_rom_bank(3);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -206,7 +206,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank0)
|
||||
else
|
||||
m_okibank &= ~1;
|
||||
|
||||
m_oki->set_bank_base(m_okibank * 0x40000);
|
||||
m_oki->set_rom_bank(m_okibank);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
|
||||
@ -216,7 +216,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
|
||||
else
|
||||
m_okibank &= ~2;
|
||||
|
||||
m_oki->set_bank_base(m_okibank * 0x40000);
|
||||
m_oki->set_rom_bank(m_okibank);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -617,7 +617,7 @@ WRITE16_MEMBER(toaplan2_state::shippumd_coin_word_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
toaplan2_coin_w(space, offset, data & 0xff);
|
||||
m_oki->set_bank_base(((data & 0x10) >> 4) * 0x40000);
|
||||
m_oki->set_rom_bank((data & 0x10) >> 4);
|
||||
}
|
||||
if (ACCESSING_BITS_8_15 && (data & 0xff00) )
|
||||
{
|
||||
@ -775,7 +775,7 @@ WRITE16_MEMBER(toaplan2_state::oki_bankswitch_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -783,7 +783,7 @@ WRITE16_MEMBER(toaplan2_state::oki1_bankswitch_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki1->set_bank_base((data & 1) * 0x40000);
|
||||
m_oki1->set_rom_bank(data & 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ WRITE16_MEMBER(unico_state::burglarx_sound_bank_w)
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
int bank = (data >> 8 ) & 1;
|
||||
m_oki->set_bank_base(0x40000 * bank );
|
||||
m_oki->set_rom_bank(bank);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -293,7 +293,7 @@ F94B
|
||||
|
||||
WRITE32_MEMBER(vamphalf_state::finalgdr_oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * ((data & 0x300) >> 8));
|
||||
m_oki->set_rom_bank((data & 0x300) >> 8);
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(vamphalf_state::finalgdr_backupram_bank_w)
|
||||
@ -331,19 +331,19 @@ WRITE32_MEMBER(vamphalf_state::finalgdr_prize_w)
|
||||
|
||||
WRITE32_MEMBER(vamphalf_state::aoh_oki_bank_w)
|
||||
{
|
||||
m_oki2->set_bank_base(0x40000 * (data & 0x3));
|
||||
m_oki2->set_rom_bank(data & 0x3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(vamphalf_state::boonggab_oki_bank_w)
|
||||
{
|
||||
if(offset)
|
||||
m_oki->set_bank_base(0x40000 * (data & 0x7));
|
||||
m_oki->set_rom_bank(data & 0x7);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(vamphalf_state::mrkicker_oki_bank_w)
|
||||
{
|
||||
m_oki->set_bank_base(0x40000 * (data & 0x3));
|
||||
m_oki->set_rom_bank(data & 0x3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(vamphalf_state::boonggab_prize_w)
|
||||
|
@ -158,7 +158,7 @@ logerror("PC %04x: pang_gfxctrl_w %02x\n",space.device().safe_pc(),data);
|
||||
|
||||
/* bit 4 selects OKI M6295 bank */
|
||||
if (m_oki != nullptr)
|
||||
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0x00000);
|
||||
m_oki->set_rom_bank((data >> 4) & 1);
|
||||
|
||||
/* bit 5 is palette RAM bank selector (doesn't apply to mgakuen) */
|
||||
m_paletteram_bank = data & 0x20;
|
||||
|
Loading…
Reference in New Issue
Block a user