mirror of
https://github.com/holub/mame
synced 2025-06-01 02:21:48 +03:00
kaneko16 : Cleanup OKI Bankswitching (#3143)
* kaneko16 : Cleanup OKI banking * kaneko16.cpp : compile fix * kaneko16.cpp : Minor fix * kaneko16.h : Get rid unused functions * kaneko16.h : Minor compile fix * kaneko16.h : Fix * kaneko16 : Compile fix * Typo * kaneko16 : Compile fixes * kaneko16 : Update notes, Cleanup soundlatch handler * kaneko16.cpp : Add notes
This commit is contained in:
parent
b3cd28aa71
commit
ade0001a98
@ -160,50 +160,40 @@ WRITE16_MEMBER(kaneko16_state::kaneko16_coin_lockout_w)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(kaneko16_state::kaneko16_soundlatch_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_soundlatch->write(space, 0, (data & 0xff00) >> 8 );
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
/* Two identically mapped YM2149 chips */
|
||||
|
||||
READ16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_r)
|
||||
template<int Chip>
|
||||
READ16_MEMBER(kaneko16_state::kaneko16_ay_YM2149_r)
|
||||
{
|
||||
/* Each 2149 register is mapped to a different address */
|
||||
m_ym2149[0]->address_w(space,0,offset);
|
||||
return m_ym2149[0]->data_r(space,0);
|
||||
m_ym2149[Chip]->address_w(space,0,offset);
|
||||
return m_ym2149[Chip]->data_r(space,0);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_w)
|
||||
|
||||
template<int Chip>
|
||||
WRITE16_MEMBER(kaneko16_state::kaneko16_ay_YM2149_w)
|
||||
{
|
||||
/* Each 2149 register is mapped to a different address */
|
||||
m_ym2149[0]->address_w(space,0,offset);
|
||||
m_ym2149[Chip]->address_w(space,0,offset);
|
||||
/* The registers are mapped to odd addresses, except one! */
|
||||
if (ACCESSING_BITS_0_7) m_ym2149[0]->data_w(space,0, data & 0xff);
|
||||
else m_ym2149[0]->data_w(space,0,(data >> 8) & 0xff);
|
||||
if (ACCESSING_BITS_0_7) m_ym2149[Chip]->data_w(space,0, data & 0xff);
|
||||
else m_ym2149[Chip]->data_w(space,0,(data >> 8) & 0xff);
|
||||
}
|
||||
|
||||
READ16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_r)
|
||||
template<int Mask>
|
||||
WRITE8_MEMBER(kaneko16_state::oki_bank0_w)
|
||||
{
|
||||
/* Each 2149 register is mapped to a different address */
|
||||
m_ym2149[1]->address_w(space,0,offset);
|
||||
return m_ym2149[1]->data_r(space,0);
|
||||
m_okibank[0]->set_entry(data & Mask);
|
||||
// logerror("%s:Selecting OKI1 bank %02X\n",machine().describe_context(),data&0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_w)
|
||||
template<int Mask>
|
||||
WRITE8_MEMBER(kaneko16_state::oki_bank1_w)
|
||||
{
|
||||
/* Each 2149 register is mapped to a different address */
|
||||
m_ym2149[1]->address_w(space,0,offset);
|
||||
/* The registers are mapped to odd addresses, except one! */
|
||||
if (ACCESSING_BITS_0_7) m_ym2149[1]->data_w(space,0, data & 0xff);
|
||||
else m_ym2149[1]->data_w(space,0,(data >> 8) & 0xff);
|
||||
m_okibank[1]->set_entry(data & Mask);
|
||||
// logerror("%s:Selecting OKI2 bank %02X\n",machine().describe_context(),data&0xff);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
@ -259,7 +249,7 @@ READ16_MEMBER(kaneko16_berlwall_state::berlwall_oki_r)
|
||||
mem_mask >>= 8;
|
||||
}
|
||||
|
||||
ret = m_oki->read(space, offset, mem_mask);
|
||||
ret = m_oki[0]->read(space, offset, mem_mask);
|
||||
ret = ret | ret << 8;
|
||||
|
||||
return ret;
|
||||
@ -273,7 +263,7 @@ WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_oki_w)
|
||||
mem_mask >>= 8;
|
||||
}
|
||||
|
||||
m_oki->write(space, offset, data, mem_mask);
|
||||
m_oki[0]->write(space, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
READ16_MEMBER(kaneko16_berlwall_state::berlwall_spriteram_r)
|
||||
@ -321,8 +311,8 @@ ADDRESS_MAP_START(kaneko16_berlwall_state::berlwall)
|
||||
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
|
||||
AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
|
||||
AM_RANGE(0x780000, 0x780001) AM_DEVREAD("watchdog", watchdog_timer_device, reset16_r)
|
||||
AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound
|
||||
AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_ay2_YM2149_r, kaneko16_ay2_YM2149_w)
|
||||
AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_ay_YM2149_r<0>, kaneko16_ay_YM2149_w<0>) // Sound
|
||||
AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_ay_YM2149_r<1>, kaneko16_ay_YM2149_w<1>)
|
||||
AM_RANGE(0x8003fe, 0x8003ff) AM_NOP // for OKI when accessed as .l
|
||||
AM_RANGE(0x800400, 0x800401) AM_READWRITE( berlwall_oki_r, berlwall_oki_w )
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
|
||||
@ -338,22 +328,14 @@ ADDRESS_MAP_END
|
||||
/* The two YM2149 chips are only used when entering high score initials, and */
|
||||
/* when the game is fully completed. Overkill??? */
|
||||
|
||||
WRITE16_MEMBER(kaneko16_state::bakubrkr_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7) {
|
||||
m_oki->set_rom_bank(data & 0x7);
|
||||
logerror("%s:Selecting OKI bank %02X\n",machine().describe_context(),data&0xff);
|
||||
}
|
||||
}
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_state::bakubrkr)
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
|
||||
AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_ay1_YM2149_r) // Sound
|
||||
AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_ay1_YM2149_w)
|
||||
AM_RANGE(0x40001e, 0x40001f) AM_WRITE(bakubrkr_oki_bank_w) // OKI bank Switch
|
||||
AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay2_YM2149_r,kaneko16_ay2_YM2149_w) // Sound
|
||||
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) //
|
||||
AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_ay_YM2149_r<0>) // Sound
|
||||
AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_ay_YM2149_w<0>)
|
||||
AM_RANGE(0x40001e, 0x40001f) AM_WRITE8(oki_bank0_w<7>, 0x00ff) // OKI bank Switch
|
||||
AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay_YM2149_r<1>,kaneko16_ay_YM2149_w<1>) // Sound
|
||||
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) //
|
||||
AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
|
||||
AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM AM_SHARE("spriteram") // Sprites
|
||||
@ -388,7 +370,8 @@ ADDRESS_MAP_START(kaneko16_state::blazeon)
|
||||
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("UNK")
|
||||
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE(kaneko16_soundlatch_w) // Read = IRQ Ack ?
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_READNOP // Read = IRQ Ack ?
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00)
|
||||
AM_RANGE(0xe40000, 0xe40001) AM_READNOP // IRQ Ack ?
|
||||
// AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ?
|
||||
AM_RANGE(0xec0000, 0xec0001) AM_READNOP // Lev 4 IRQ Ack ?
|
||||
@ -399,24 +382,6 @@ ADDRESS_MAP_END
|
||||
Blood Warrior
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[0]->set_rom_bank(data & 0xf);
|
||||
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",m_maincpu->pc(),data);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[1]->set_rom_bank(data);
|
||||
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",m_maincpu->pc(),data);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_coin_lockout_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
@ -454,8 +419,8 @@ ADDRESS_MAP_START(kaneko16_gtmr_state::bloodwar)
|
||||
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, mcu_status_r)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w)
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(oki_bank0_w<0xf>, 0x00ff)
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE8(oki_bank1_w<0x3>, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -463,25 +428,6 @@ ADDRESS_MAP_END
|
||||
Bonk's Adventure
|
||||
***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[0]->set_rom_bank(data & 0xf);
|
||||
logerror("%s: OKI0 bank %08X\n",machine().describe_context(),data);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[1]->set_rom_bank(data);
|
||||
logerror("%s: OKI1 bank %08X\n",machine().describe_context(),data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_gtmr_state::bonkadv)
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
|
||||
@ -508,8 +454,8 @@ ADDRESS_MAP_START(kaneko16_gtmr_state::bonkadv)
|
||||
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable)
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, mcu_status_r)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w)
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(oki_bank0_w<0xf>, 0x00ff)
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE8(oki_bank1_w<0xf>, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -532,24 +478,6 @@ READ16_MEMBER(kaneko16_gtmr_state::gtmr_wheel_r)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_0_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[0]->set_rom_bank(data & 0xf);
|
||||
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",m_maincpu->pc(),data);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_1_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_oki[1]->set_rom_bank(data & 0x1);
|
||||
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",m_maincpu->pc(),data);
|
||||
}
|
||||
}
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_gtmr_state::gtmr_map)
|
||||
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
|
||||
AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value
|
||||
@ -589,8 +517,8 @@ ADDRESS_MAP_START(kaneko16_gtmr_state::gtmr_map)
|
||||
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, mcu_status_r)
|
||||
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(oki_bank0_w<0xf>, 0x00ff) // Samples Bankswitching
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE8(oki_bank1_w<0x1>, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************
|
||||
@ -657,8 +585,8 @@ ADDRESS_MAP_START(kaneko16_gtmr_state::gtmr2_map)
|
||||
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVREAD( "toybox", kaneko_toybox_device, mcu_status_r)
|
||||
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w) // Samples Bankswitching
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(oki_bank0_w<0xf>, 0x00ff) // Samples Bankswitching
|
||||
AM_RANGE(0xe80000, 0xe80001) AM_WRITE8(oki_bank1_w<0x1>, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************
|
||||
@ -668,9 +596,9 @@ ADDRESS_MAP_END
|
||||
ADDRESS_MAP_START(kaneko16_state::mgcrystl)
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM
|
||||
AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound
|
||||
AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay2_YM2149_r, kaneko16_ay2_YM2149_w)
|
||||
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_ay_YM2149_r<0>, kaneko16_ay_YM2149_w<0>) // Sound
|
||||
AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay_YM2149_r<1>, kaneko16_ay_YM2149_w<1>)
|
||||
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x500000, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
|
||||
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
|
||||
AM_RANGE(0x680000, 0x683fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w )
|
||||
@ -691,39 +619,15 @@ ADDRESS_MAP_END
|
||||
Shogun Warriors
|
||||
***************************************************************************/
|
||||
|
||||
void kaneko16_shogwarr_state::kaneko16_common_oki_bank_w(const char *bankname, const char *tag, int bank, size_t fixedsize, size_t bankedsize)
|
||||
{
|
||||
uint32_t bankaddr;
|
||||
uint8_t* samples = memregion(tag)->base();
|
||||
size_t length = memregion(tag)->bytes();
|
||||
|
||||
bankaddr = fixedsize + (bankedsize * bank);
|
||||
|
||||
if (bankaddr <= (length-bankedsize))
|
||||
{
|
||||
membank(bankname)->set_base(samples + bankaddr);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_shogwarr_state::shogwarr_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
kaneko16_common_oki_bank_w("bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_w("bank11", "oki2", (data & 0xf) , 0x00000, 0x40000);
|
||||
m_okibank[0]->set_entry((data >> 4) & 0xf);
|
||||
m_okibank[1]->set_entry((data & 0xf));
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(kaneko16_shogwarr_state::brapboys_oki_bank_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
kaneko16_common_oki_bank_w("bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_w("bank11", "oki2", (data & 0xf) , 0x20000, 0x20000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_shogwarr_state::shogwarr)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("mainram") // Work RAM
|
||||
@ -750,7 +654,6 @@ ADDRESS_MAP_START(kaneko16_shogwarr_state::shogwarr)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(shogwarr_oki_bank_w) // Samples Bankswitching
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
@ -779,21 +682,13 @@ ADDRESS_MAP_END
|
||||
Wing Force
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(kaneko16_state::wingforc_oki_bank_w)
|
||||
{
|
||||
if (data <= 2)
|
||||
m_oki->set_rom_bank(data);
|
||||
else
|
||||
logerror("%s: unknown OKI bank %02X\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_state::wingforc_soundport)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
// AM_RANGE(0x00, 0x00) // 02 written at boot
|
||||
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x06, 0x06) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x0a, 0x0a) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x0c, 0x0c) AM_WRITE(wingforc_oki_bank_w)
|
||||
AM_RANGE(0x0a, 0x0a) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x0c, 0x0c) AM_WRITE(oki_bank0_w<0x3>)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -1916,7 +1811,7 @@ MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall)
|
||||
MCFG_SOUND_ADD("ym2149_2", YM2149, 1000000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", 12000000/6, PIN7_LOW)
|
||||
MCFG_OKIM6295_ADD("oki1", 12000000/6, PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
@ -1926,6 +1821,11 @@ MACHINE_CONFIG_END
|
||||
Bakuretsu Breaker
|
||||
***************************************************************************/
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_state::bakubrkr_oki1_map)
|
||||
AM_RANGE(0x00000, 0x1ffff) AM_ROM
|
||||
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("okibank1")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1982,8 +1882,9 @@ MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
|
||||
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL(12'000'000)/6, PIN7_HIGH) /* verified on pcb */
|
||||
MCFG_OKIM6295_ADD("oki1", XTAL(12'000'000)/6, PIN7_HIGH) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, bakubrkr_oki1_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -2044,6 +1945,7 @@ MACHINE_CONFIG_START(kaneko16_state::blazeon)
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 4000000)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
@ -2098,12 +2000,14 @@ MACHINE_CONFIG_START(kaneko16_state::wingforc)
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL(16'000'000)/4)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL(16'000'000)/16, PIN7_HIGH)
|
||||
MCFG_OKIM6295_ADD("oki1", XTAL(16'000'000)/16, PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, bakubrkr_oki1_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -2121,6 +2025,15 @@ MACHINE_CONFIG_END
|
||||
VIDEO_UPDATE_AFTER_VBLANK fixes the mangled/wrong colored sprites
|
||||
*/
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_state::gtmr_oki1_map)
|
||||
AM_RANGE(0x00000, 0x2ffff) AM_ROM
|
||||
AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("okibank1")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_state::gtmr_oki2_map)
|
||||
AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("okibank2")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -2174,9 +2087,11 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", XTAL(16'000'000)/8, PIN7_LOW) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki1_map)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki2", XTAL(16'000'000)/8, PIN7_LOW) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki2_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmre)
|
||||
@ -2303,7 +2218,7 @@ MACHINE_CONFIG_START(kaneko16_state::mgcrystl)
|
||||
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL(12'000'000)/6, PIN7_HIGH) /* verified on pcb */
|
||||
MCFG_OKIM6295_ADD("oki1", XTAL(12'000'000)/6, PIN7_HIGH) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -2368,15 +2283,6 @@ static const uint16_t shogwarr_default_eeprom[64] = {
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0xFFFF
|
||||
};
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_shogwarr_state::shogwarr_oki1_map)
|
||||
AM_RANGE(0x00000, 0x2ffff) AM_ROM
|
||||
AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("bank10")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(kaneko16_shogwarr_state::shogwarr_oki2_map)
|
||||
AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("bank11")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -2429,11 +2335,11 @@ MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki1", XTAL(16'000'000)/8, PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, shogwarr_oki1_map)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki1_map)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki2", XTAL(16'000'000)/8, PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, shogwarr_oki2_map)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, gtmr_oki2_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -2448,9 +2354,10 @@ static const uint16_t brapboys_default_eeprom[64] = {
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0035, 0xFFFF, 0xFFFF, 0xFFFF
|
||||
};
|
||||
|
||||
// sample banking is different on brap boys for the music, why? GALs / PALs ?
|
||||
ADDRESS_MAP_START(kaneko16_shogwarr_state::brapboys_oki2_map)
|
||||
AM_RANGE(0x00000, 0x1ffff) AM_ROM
|
||||
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank11")
|
||||
AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("okibank2")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_START(kaneko16_shogwarr_state::brapboys)
|
||||
@ -2496,32 +2403,48 @@ void kaneko16_state::kaneko16_unscramble_tiles(const char *region)
|
||||
}
|
||||
}
|
||||
|
||||
void kaneko16_gtmr_state::kaneko16_expand_sample_banks(const char *region)
|
||||
void kaneko16_state::kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize)
|
||||
{
|
||||
/* The sample data for the first OKI has an address translator/
|
||||
banking register in it that munges the addresses as follows:
|
||||
assert((m_okibank[bankno].found()) && (m_okiregion[bankno].found()));
|
||||
uint8_t *sample = m_okiregion[bankno]->base();
|
||||
size_t length = m_okiregion[bankno]->bytes();
|
||||
|
||||
Offsets 00000-2FFFF always come from ROM 00000-2FFFF
|
||||
Offsets 30000-3FFFF come from ROM (10000*bank) + 00000-0FFFF
|
||||
if (fixedsize > 0)
|
||||
{
|
||||
int max_bank = (length - fixedsize) / bankedsize;
|
||||
m_okibank[bankno]->configure_entries(0, max_bank, &sample[fixedsize], bankedsize);
|
||||
int i = max_bank;
|
||||
while (i < length / bankedsize)
|
||||
{
|
||||
m_okibank[bankno]->configure_entry(i++, &sample[length - bankedsize]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_okibank[bankno]->configure_entries(0, length / bankedsize, &sample[0], bankedsize);
|
||||
}
|
||||
}
|
||||
|
||||
Because we can't do this dynamically, we pre-generate all 16
|
||||
possible combinations of these and swap between them.
|
||||
*/
|
||||
int bank;
|
||||
uint8_t *src0;
|
||||
|
||||
if (memregion(region)->bytes() < 0x40000 * 16)
|
||||
fatalerror("gtmr SOUND1 region too small\n");
|
||||
void kaneko16_gtmr_state::kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize)
|
||||
{
|
||||
assert((m_okibank[bankno].found()) && (m_okiregion[bankno].found()));
|
||||
uint8_t *sample = m_okiregion[bankno]->base();
|
||||
size_t length = m_okiregion[bankno]->bytes();
|
||||
|
||||
/* bank 0 maps to itself, so we just leave it alone */
|
||||
src0 = memregion(region)->base();
|
||||
for (bank = 15; bank > 0; bank--)
|
||||
if (fixedsize > 0)
|
||||
{
|
||||
uint8_t *srcn = src0 + 0x10000 * (bank < 3 ? 3 : bank);
|
||||
uint8_t *dst = src0 + 0x40000 * bank;
|
||||
|
||||
memcpy(dst + 0x30000, srcn + 0x00000, 0x10000);
|
||||
memcpy(dst + 0x00000, src0 + 0x00000, 0x30000);
|
||||
int bank_offs = fixedsize / bankedsize;
|
||||
int i = 0;
|
||||
while (i < bank_offs)
|
||||
{
|
||||
m_okibank[bankno]->configure_entry(i++, &sample[fixedsize]);
|
||||
}
|
||||
m_okibank[bankno]->configure_entries(bank_offs, (length - fixedsize) / bankedsize, &sample[fixedsize], bankedsize);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_okibank[bankno]->configure_entries(0, length / bankedsize, &sample[0], bankedsize);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2531,6 +2454,12 @@ DRIVER_INIT_MEMBER( kaneko16_state, kaneko16 )
|
||||
kaneko16_unscramble_tiles("gfx3");
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER( kaneko16_state, bakubrkr )
|
||||
{
|
||||
kaneko16_common_oki_bank_install(0, 0x20000, 0x20000);
|
||||
DRIVER_INIT_CALL(kaneko16);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
berlwallt original bug ?
|
||||
@ -2610,9 +2539,9 @@ DRIVER_INIT_MEMBER( kaneko16_berlwall_state, berlwallk )
|
||||
|
||||
DRIVER_INIT_MEMBER( kaneko16_gtmr_state, gtmr )
|
||||
{
|
||||
kaneko16_unscramble_tiles("gfx2");
|
||||
kaneko16_unscramble_tiles("gfx3");
|
||||
kaneko16_expand_sample_banks("oki1");
|
||||
kaneko16_common_oki_bank_install(0, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_install(1, 0x00000, 0x40000);
|
||||
DRIVER_INIT_CALL(kaneko16);
|
||||
}
|
||||
|
||||
|
||||
@ -2691,28 +2620,10 @@ ROM_START( explbrkr )
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles */
|
||||
ROM_LOAD( "ts020.u33", 0x000000, 0x100000, CRC(eb58c35d) SHA1(762c5219de6f729a0fc1df90fce09cdf711c2a1e) )
|
||||
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) )
|
||||
|
||||
/* $00000-$20000 stays the same in all sound banks, */
|
||||
/* the second half of the bank is what gets switched */
|
||||
ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
|
||||
ROM_COPY( "user1", 0x000000, 0x000000, 0x020000)
|
||||
ROM_COPY( "user1", 0x020000, 0x020000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x040000, 0x020000)
|
||||
ROM_COPY( "user1", 0x040000, 0x060000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x080000, 0x020000)
|
||||
ROM_COPY( "user1", 0x060000, 0x0a0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x080000, 0x0e0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x100000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0a0000, 0x120000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x140000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0c0000, 0x160000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x180000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0e0000, 0x1a0000, 0x020000)
|
||||
ROM_FILL( 0x1c0000, 0x020000, 0x000000 )
|
||||
ROM_FILL( 0x1e0000, 0x020000, 0x000000 )
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( bakubrkr )
|
||||
@ -2722,9 +2633,9 @@ ROM_START( bakubrkr )
|
||||
|
||||
ROM_REGION( 0x240000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "ts001j.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) )
|
||||
ROM_RELOAD( 0x100000, 0x080000 )
|
||||
ROM_RELOAD( 0x100000, 0x080000 )
|
||||
ROM_LOAD( "ts000j.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) )
|
||||
ROM_RELOAD( 0x180000, 0x080000 )
|
||||
ROM_RELOAD( 0x180000, 0x080000 )
|
||||
ROM_LOAD( "ts002j.u36", 0x200000, 0x040000, CRC(611271e6) SHA1(811c21822b074fbb4bb809fed29d48bbd51d57a0) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx2", 0 ) /* Tiles */
|
||||
@ -2733,28 +2644,10 @@ ROM_START( bakubrkr )
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles */
|
||||
ROM_LOAD( "ts020.u33", 0x000000, 0x100000, CRC(eb58c35d) SHA1(762c5219de6f729a0fc1df90fce09cdf711c2a1e) )
|
||||
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) )
|
||||
|
||||
/* $00000-$20000 stays the same in all sound banks, */
|
||||
/* the second half of the bank is what gets switched */
|
||||
ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
|
||||
ROM_COPY( "user1", 0x000000, 0x000000, 0x020000)
|
||||
ROM_COPY( "user1", 0x020000, 0x020000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x040000, 0x020000)
|
||||
ROM_COPY( "user1", 0x040000, 0x060000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x080000, 0x020000)
|
||||
ROM_COPY( "user1", 0x060000, 0x0a0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x080000, 0x0e0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x100000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0a0000, 0x120000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x140000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0c0000, 0x160000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x180000, 0x020000)
|
||||
ROM_COPY( "user1", 0x0e0000, 0x1a0000, 0x020000)
|
||||
ROM_FILL( 0x1c0000, 0x020000, 0x000000 )
|
||||
ROM_FILL( 0x1e0000, 0x020000, 0x000000 )
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -2814,7 +2707,7 @@ ROM_START( berlwall )
|
||||
ROM_LOAD16_BYTE( "bw007.u76", 0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
|
||||
ROM_LOAD16_BYTE( "bw00b.u68", 0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "bw000.u46", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
|
||||
|
||||
ROM_REGION( 0x600, "plds", 0 ) /* 3 x GAL16V8A-25LP */
|
||||
@ -2846,7 +2739,7 @@ ROM_START( berlwallt )
|
||||
ROM_LOAD16_BYTE( "bw007.u76", 0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
|
||||
ROM_LOAD16_BYTE( "bw00b.u68", 0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "bw000.u46", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
|
||||
|
||||
ROM_REGION( 0x600, "plds", 0 ) /* 3 x GAL16V8A-25LP */
|
||||
@ -2880,7 +2773,7 @@ ROM_START( berlwallk )
|
||||
ROM_LOAD16_BYTE( "bw007.u76", 0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
|
||||
ROM_LOAD16_BYTE( "bw00b.u68", 0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "bw000k.u46", 0x000000, 0x040000, CRC(52e81a50) SHA1(0adf6b42dee244dba2a4fb237155b04699b0254f) )
|
||||
|
||||
ROM_REGION( 0x600, "plds", 0 ) /* 3 x GAL16V8A-25LP */
|
||||
@ -2909,7 +2802,7 @@ ROM_START( packbang ) /* same PCB as Berlin Wall - BW-002 */
|
||||
ROM_LOAD16_BYTE( "bb.u75", 0x200000, 0x080000, CRC(5cb4669f) SHA1(ab061f5b34435dca46f710ea8118c919a3a9f87c) )
|
||||
ROM_LOAD16_BYTE( "bb.u67", 0x200001, 0x080000, CRC(ce5c9417) SHA1(30aca496d1f4218b44a32b3630e58889f0c54564) ) // FIXED BITS (xxxxxxx0)
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "bw000.u46", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
|
||||
ROM_END
|
||||
|
||||
@ -3046,20 +2939,10 @@ ROM_START( wingforc )
|
||||
ROM_LOAD16_BYTE( "bg1am.u3", 0x100000, 0x80000, CRC(a44fdebb) SHA1(676ade63d22818c7a7adf39d42aad41fa93319d2) )
|
||||
ROM_LOAD16_BYTE( "bg1bm.u3", 0x100001, 0x80000, CRC(a9b9fc5d) SHA1(33db691007a8cf25aea6b87a0f009c50df2676f2) )
|
||||
|
||||
ROM_REGION( 0x80000, "user1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "pcm.u5", 0x00000, 0x80000, CRC(233569fd) SHA1(eb835008bcb961528c0ef4ca72e44ee08c517b81) )
|
||||
|
||||
/* $00000-$20000 stays the same in all sound banks, */
|
||||
/* the second half of the bank is what gets switched */
|
||||
ROM_REGION( 0x100000, "oki", 0 ) /* Samples */
|
||||
ROM_COPY( "user1", 0x000000, 0x000000, 0x020000)
|
||||
ROM_COPY( "user1", 0x020000, 0x020000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x040000, 0x020000)
|
||||
ROM_COPY( "user1", 0x040000, 0x060000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x080000, 0x020000)
|
||||
ROM_COPY( "user1", 0x060000, 0x0a0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000)
|
||||
ROM_COPY( "user1", 0x000000, 0x0e0000, 0x020000)
|
||||
ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Sample ROM */
|
||||
ROM_LOAD( "pcm.u5", 0x00000, 0x80000, CRC(233569fd) SHA1(eb835008bcb961528c0ef4ca72e44ee08c517b81) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -3176,7 +3059,7 @@ ROM_START( bloodwar )
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_LOAD( "of-301-0226.55", 0x000000, 0x100000, CRC(fcf215de) SHA1(83015f10e62b917efd6e3edfbd45fb8f9b35db2b) )
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "of-101-f-0223.101", 0x000000, 0x100000, CRC(295f3c93) SHA1(558698f1d04b23dd2a73e2eae5ecce598defb228) ) /* 0224 ? */
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", 0 ) /* Samples */
|
||||
@ -3220,7 +3103,7 @@ ROM_START( oedfight )
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_LOAD( "of-301-0226.55", 0x000000, 0x100000, CRC(fcf215de) SHA1(83015f10e62b917efd6e3edfbd45fb8f9b35db2b) )
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "of-101-j-0224.101", 0x000000, 0x100000, CRC(83a1f826) SHA1(3b5f576735d5954770cd572b03e71bf121ae88d2) )
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", 0 ) /* Samples */
|
||||
@ -3360,7 +3243,7 @@ ROM_START( gtmr )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", ROMREGION_ERASE00 ) /* Samples */
|
||||
@ -3389,7 +3272,7 @@ ROM_START( gtmra )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", ROMREGION_ERASE00 ) /* Samples */
|
||||
@ -3418,7 +3301,7 @@ ROM_START( gtmrb )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", ROMREGION_ERASE00 ) /* Samples */
|
||||
@ -3451,7 +3334,7 @@ ROM_START( gtmro )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", ROMREGION_ERASE00 ) /* Samples */
|
||||
@ -3492,7 +3375,7 @@ ROM_START( gtmre )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "gmmu23.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", 0 ) /* Samples */
|
||||
@ -3529,7 +3412,7 @@ ROM_START( gtmrusa )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x200000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mm-100-401-a0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000
|
||||
|
||||
ROM_REGION( 0x100000, "oki2", 0 ) /* Samples */
|
||||
@ -3703,9 +3586,9 @@ ROM_START( gtmr2 )
|
||||
ROM_LOAD16_WORD_SWAP( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) )
|
||||
ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) )
|
||||
ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) )
|
||||
ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) )
|
||||
ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) )
|
||||
ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) )
|
||||
ROM_LOAD16_BYTE( "m2s0x1a.u32", 0x700000, 0x080000, CRC(a485eec6) SHA1(f8aff62daed95a63544106472a9ef34902feaaa2) )
|
||||
ROM_LOAD16_BYTE( "m2s1x1a.u33", 0x700001, 0x080000, CRC(c5b71bb2) SHA1(874e2a2e19cd8f916afa6fcf54169a8db035fe64) )
|
||||
|
||||
@ -3718,7 +3601,7 @@ ROM_START( gtmr2 )
|
||||
ROM_REGION( 0x440000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x440000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) )
|
||||
|
||||
ROM_REGION( 0x080000, "oki2", 0 ) /* Samples */
|
||||
@ -3749,7 +3632,7 @@ ROM_START( gtmr2a )
|
||||
ROM_REGION( 0x440000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x440000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) )
|
||||
|
||||
ROM_REGION( 0x080000, "oki2", 0 ) /* Samples */
|
||||
@ -3780,7 +3663,7 @@ ROM_START( gtmr2u )
|
||||
ROM_REGION( 0x440000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_COPY("gfx2",0x000000,0,0x440000) // it isn't on the board twice.
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) )
|
||||
|
||||
ROM_REGION( 0x080000, "oki2", 0 ) /* Samples */
|
||||
@ -3858,7 +3741,7 @@ ROM_START( mgcrystl ) /* Master Up: 92/01/10 14:21:30 */
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles (Scrambled) */
|
||||
ROM_LOAD( "mc020.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) )
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mc030.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) )
|
||||
ROM_END
|
||||
|
||||
@ -3882,7 +3765,7 @@ ROM_START( mgcrystlo ) /* Master Up: 91/12/10 01:56:06 */
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles (Scrambled) */
|
||||
ROM_LOAD( "mc020.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) )
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "mc030.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) )
|
||||
ROM_END
|
||||
|
||||
@ -3907,7 +3790,7 @@ ROM_START( mgcrystlj ) /* Master Up: 92/01/13 14:44:20 */
|
||||
ROM_REGION( 0x100000, "gfx3", 0 ) /* Tiles (Scrambled) */
|
||||
ROM_LOAD( "kaneko__mc-020_0004.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) ) // Mask rom
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "kaneko__mc-030_0005_t99.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) )
|
||||
ROM_END
|
||||
|
||||
@ -4467,7 +4350,7 @@ ROM_START( bonkadv )
|
||||
ROM_REGION( 0x200000, "gfx3", 0 ) /* Tiles (scrambled) */
|
||||
ROM_LOAD( "pc500105.55", 0x000000, 0x100000, CRC(bebb3edc) SHA1(e0fed4307316deaeb811ec29f5022adeaf577a95) )
|
||||
|
||||
ROM_REGION( 0x400000, "oki1", 0 ) /* Samples, plus room for expansion */
|
||||
ROM_REGION( 0x100000, "oki1", 0 ) /* Samples */
|
||||
ROM_LOAD( "pc604109.101", 0x000000, 0x100000, CRC(76025530) SHA1(e0c8192d783057798eea084aa3e87938f6e01cb7) )
|
||||
|
||||
ROM_REGION( 0x300000, "oki2", 0 ) /* Samples */
|
||||
@ -4481,20 +4364,17 @@ ROM_END
|
||||
DRIVER_INIT_MEMBER( kaneko16_shogwarr_state, shogwarr )
|
||||
{
|
||||
// default sample banks
|
||||
kaneko16_common_oki_bank_w("bank10", "oki1", 0, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_w("bank11", "oki2", 0, 0x00000, 0x40000);
|
||||
kaneko16_common_oki_bank_install(0, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_install(1, 0x00000, 0x40000);
|
||||
DRIVER_INIT_CALL(kaneko16);
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER( kaneko16_shogwarr_state, brapboys )
|
||||
{
|
||||
// sample banking is different on brap boys for the music, why? GALs / PALs ?
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0xe00000, 0xe00001, write16_delegate(FUNC(kaneko16_shogwarr_state::brapboys_oki_bank_w),this));
|
||||
|
||||
// default sample banks
|
||||
kaneko16_common_oki_bank_w("bank10", "oki1", 0, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_w("bank11", "oki2", 0, 0x20000, 0x20000);
|
||||
kaneko16_common_oki_bank_install(0, 0x30000, 0x10000);
|
||||
kaneko16_common_oki_bank_install(1, 0x20000, 0x20000);
|
||||
DRIVER_INIT_CALL(kaneko16);
|
||||
}
|
||||
|
||||
@ -4516,9 +4396,9 @@ GAME( 1991, mgcrystl, 0, mgcrystl, mgcrystl, kaneko16_state, k
|
||||
GAME( 1991, mgcrystlo, mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 91/12/10)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, mgcrystlj, mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko (Atlus license)", "Magical Crystals (Japan, 92/01/13)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16_state, kaneko16, ROT0, "A.I (Atlus license)", "Blaze On (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Explosive Breaker", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, wingforc, 0, wingforc, wingforc, kaneko16_state, kaneko16, ROT270,"A.I (Atlus license)", "Wing Force (Japan, prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, bakubrkr, ROT90, "Kaneko", "Explosive Breaker", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, bakubrkr, ROT90, "Kaneko", "Bakuretsu Breaker", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, wingforc, 0, wingforc, wingforc, kaneko16_state, bakubrkr, ROT270,"A.I (Atlus license)", "Wing Force (Japan, prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1994, bonkadv, 0, bonkadv, bonkadv, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, bloodwar, 0, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Blood Warrior", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -28,21 +28,23 @@ public:
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_oki(*this, "oki"),
|
||||
m_ym2149(*this, "ym2149_%u", 1),
|
||||
m_oki(*this, "oki%u", 1),
|
||||
m_view2(*this, "view2_%u", 0),
|
||||
m_kaneko_spr(*this, "kan_spr"),
|
||||
m_palette(*this, "palette"),
|
||||
m_eeprom(*this, "eeprom"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_mainram(*this, "mainram")
|
||||
m_mainram(*this, "mainram"),
|
||||
m_okiregion(*this, "oki%u", 1),
|
||||
m_okibank(*this, "okibank%u", 1)
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
optional_device_array<ym2149_device, 2> m_ym2149;
|
||||
optional_device_array<okim6295_device, 2> m_oki;
|
||||
optional_device_array<kaneko_view2_tilemap_device, 2> m_view2;
|
||||
required_device<kaneko16_sprite_device> m_kaneko_spr;
|
||||
required_device<palette_device> m_palette;
|
||||
@ -51,29 +53,30 @@ public:
|
||||
|
||||
optional_shared_ptr<uint16_t> m_spriteram;
|
||||
optional_shared_ptr<uint16_t> m_mainram;
|
||||
|
||||
optional_memory_region_array<2> m_okiregion;
|
||||
optional_memory_bank_array<2> m_okibank;
|
||||
|
||||
uint16_t m_disp_enable;
|
||||
|
||||
int m_VIEW2_2_pri;
|
||||
|
||||
|
||||
|
||||
void kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize);
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_coin_lockout_w);
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_soundlatch_w);
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_eeprom_w);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_display_enable);
|
||||
|
||||
DECLARE_READ16_MEMBER(kaneko16_ay1_YM2149_r);
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_ay1_YM2149_w);
|
||||
DECLARE_READ16_MEMBER(kaneko16_ay2_YM2149_r);
|
||||
DECLARE_WRITE16_MEMBER(kaneko16_ay2_YM2149_w);
|
||||
DECLARE_WRITE16_MEMBER(bakubrkr_oki_bank_w);
|
||||
DECLARE_WRITE8_MEMBER(wingforc_oki_bank_w);
|
||||
template<int Chip> DECLARE_READ16_MEMBER(kaneko16_ay_YM2149_r);
|
||||
template<int Chip> DECLARE_WRITE16_MEMBER(kaneko16_ay_YM2149_w);
|
||||
template<int Mask> DECLARE_WRITE8_MEMBER(oki_bank0_w);
|
||||
template<int Mask> DECLARE_WRITE8_MEMBER(oki_bank1_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(eeprom_r);
|
||||
DECLARE_WRITE8_MEMBER(eeprom_w);
|
||||
|
||||
|
||||
DECLARE_DRIVER_INIT(kaneko16);
|
||||
DECLARE_DRIVER_INIT(bakubrkr);
|
||||
|
||||
|
||||
DECLARE_MACHINE_RESET(gtmr);
|
||||
@ -95,33 +98,30 @@ public:
|
||||
void blazeon(machine_config &config);
|
||||
void mgcrystl(machine_config &config);
|
||||
void bakubrkr(address_map &map);
|
||||
void bakubrkr_oki1_map(address_map &map);
|
||||
void blazeon(address_map &map);
|
||||
void blazeon_soundmem(address_map &map);
|
||||
void blazeon_soundport(address_map &map);
|
||||
void mgcrystl(address_map &map);
|
||||
void wingforc_soundport(address_map &map);
|
||||
void gtmr_oki1_map(address_map &map);
|
||||
void gtmr_oki2_map(address_map &map);
|
||||
};
|
||||
|
||||
class kaneko16_gtmr_state : public kaneko16_state
|
||||
{
|
||||
public:
|
||||
kaneko16_gtmr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: kaneko16_state(mconfig, type, tag),
|
||||
m_oki(*this, "oki%u", 1)
|
||||
: kaneko16_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_WRITE16_MEMBER(bloodwar_oki_0_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(bloodwar_oki_1_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(bonkadv_oki_0_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(bonkadv_oki_1_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(gtmr_oki_0_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(gtmr_oki_1_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(bloodwar_coin_lockout_w);
|
||||
DECLARE_READ16_MEMBER(gtmr_wheel_r);
|
||||
DECLARE_READ16_MEMBER(gtmr2_wheel_r);
|
||||
DECLARE_READ16_MEMBER(gtmr2_IN1_r);
|
||||
DECLARE_DRIVER_INIT(gtmr);
|
||||
void kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize);
|
||||
|
||||
void bonkadv(machine_config &config);
|
||||
void gtmr(machine_config &config);
|
||||
@ -132,10 +132,6 @@ public:
|
||||
void bonkadv(address_map &map);
|
||||
void gtmr2_map(address_map &map);
|
||||
void gtmr_map(address_map &map);
|
||||
private:
|
||||
void kaneko16_expand_sample_banks(const char *region);
|
||||
|
||||
required_device_array<okim6295_device, 2> m_oki;
|
||||
};
|
||||
|
||||
|
||||
@ -197,7 +193,6 @@ public:
|
||||
}
|
||||
|
||||
DECLARE_WRITE16_MEMBER(shogwarr_oki_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(brapboys_oki_bank_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(shogwarr);
|
||||
DECLARE_DRIVER_INIT(brapboys);
|
||||
@ -208,10 +203,7 @@ public:
|
||||
void brapboys(machine_config &config);
|
||||
void brapboys_oki2_map(address_map &map);
|
||||
void shogwarr(address_map &map);
|
||||
void shogwarr_oki1_map(address_map &map);
|
||||
void shogwarr_oki2_map(address_map &map);
|
||||
private:
|
||||
void kaneko16_common_oki_bank_w(const char *bankname, const char *tag, int bank, size_t fixedsize, size_t bankedsize);
|
||||
|
||||
optional_device<kaneko_calc3_device> m_calc3_prot;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user