deco16ic : Split pf1/2 size (#3124)

cninja : cleanup ioprot
This commit is contained in:
cam900 2018-01-25 23:29:53 +09:00 committed by ajrhacker
parent 7b872f9fac
commit 1eed9f5783
22 changed files with 171 additions and 122 deletions

View File

@ -498,7 +498,8 @@ MACHINE_CONFIG_START(backfire_state::backfire)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SET_SCREEN("lscreen")
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -514,7 +515,8 @@ MACHINE_CONFIG_START(backfire_state::backfire)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SET_SCREEN("lscreen")
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x10)

View File

@ -364,7 +364,8 @@ MACHINE_CONFIG_START(boogwing_state::boogwing)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x1f) // pf2 has 5bpp graphics
MCFG_DECO16IC_PF1_COL_BANK(0)
@ -379,7 +380,8 @@ MACHINE_CONFIG_START(boogwing_state::boogwing)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0)

View File

@ -330,7 +330,8 @@ MACHINE_CONFIG_START(cbuster_state::twocrude)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -345,7 +346,8 @@ MACHINE_CONFIG_START(cbuster_state::twocrude)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x30)

View File

@ -169,7 +169,7 @@ READ16_MEMBER( cninja_state::sshangha_protection_region_8_146_r )
int real_address = 0x1a0000 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
uint16_t data = m_ioprot->read_data( deco146_addr, mem_mask, cs );
return data;
}
@ -178,7 +178,7 @@ WRITE16_MEMBER( cninja_state::sshangha_protection_region_8_146_w )
int real_address = 0x1a0000 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
m_ioprot->write_data( space, deco146_addr, data, mem_mask, cs );
}
READ16_MEMBER( cninja_state::sshangha_protection_region_6_146_r )
@ -188,7 +188,7 @@ READ16_MEMBER( cninja_state::sshangha_protection_region_6_146_r )
int real_address = 0x198000 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
uint16_t data = m_ioprot->read_data( deco146_addr, mem_mask, cs );
// if ((realdat & mem_mask) != (data & mem_mask))
@ -205,7 +205,7 @@ WRITE16_MEMBER( cninja_state::sshangha_protection_region_6_146_w )
int real_address = 0x198000 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
m_ioprot->write_data( space, deco146_addr, data, mem_mask, cs );
}
static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16, cninja_state )
@ -279,7 +279,7 @@ READ16_MEMBER( cninja_state::mutantf_protection_region_0_146_r )
int real_address = 0 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
uint16_t data = m_deco146->read_data( deco146_addr, mem_mask, cs );
uint16_t data = m_ioprot->read_data( deco146_addr, mem_mask, cs );
return data;
}
@ -288,7 +288,7 @@ WRITE16_MEMBER( cninja_state::mutantf_protection_region_0_146_w )
int real_address = 0 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
uint8_t cs = 0;
m_deco146->write_data( space, deco146_addr, data, mem_mask, cs );
m_ioprot->write_data( space, deco146_addr, data, mem_mask, cs );
}
READ16_MEMBER( cninja_state::mutantf_71_r )
@ -331,19 +331,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_device, read, write)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map_146, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_device, read, write)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco146_device, soundlatch_r)
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
@ -355,7 +343,7 @@ static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("ioprot", deco146_device, soundlatch_r)
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
@ -366,7 +354,7 @@ static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cninjabl_sound_map, AS_PROGRAM, 8, cninja_state )
@ -382,7 +370,7 @@ static ADDRESS_MAP_START( cninjabl2_s_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(cninjabl2_oki_bank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cninjabl2_oki_map, 0, 8, cninja_state )
@ -854,7 +842,8 @@ MACHINE_CONFIG_START(cninja_state::cninja)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(1)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -867,7 +856,8 @@ MACHINE_CONFIG_START(cninja_state::cninja)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -885,7 +875,7 @@ MACHINE_CONFIG_START(cninja_state::cninja)
MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback)
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO104_ADD("ioprot")
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
@ -942,7 +932,8 @@ MACHINE_CONFIG_START(cninja_state::stoneage)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(1)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -955,7 +946,8 @@ MACHINE_CONFIG_START(cninja_state::stoneage)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -973,7 +965,7 @@ MACHINE_CONFIG_START(cninja_state::stoneage)
MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback)
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO104_ADD("ioprot104")
MCFG_DECO104_ADD("ioprot")
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
@ -999,7 +991,7 @@ MACHINE_CONFIG_DERIVED(cninja_state::cninjabl2, stoneage)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2)
MCFG_DEVICE_MODIFY("ioprot104")
MCFG_DEVICE_MODIFY("ioprot")
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
MCFG_DEVICE_REMOVE("ymsnd")
@ -1037,7 +1029,8 @@ MACHINE_CONFIG_START(cninja_state::cninjabl)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(1)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1050,7 +1043,8 @@ MACHINE_CONFIG_START(cninja_state::cninjabl)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1086,7 +1080,7 @@ MACHINE_CONFIG_START(cninja_state::edrandy)
MCFG_CPU_PROGRAM_MAP(edrandy_map)
MCFG_CPU_ADD("audiocpu", H6280, XTAL(32'220'000) / 8)
MCFG_CPU_PROGRAM_MAP(sound_map_146)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_DECO_IRQ_ADD("irq", "screen")
MCFG_DECO_IRQ_RASTER1_IRQ_CB(INPUTLINE("maincpu", 3))
@ -1107,7 +1101,8 @@ MACHINE_CONFIG_START(cninja_state::edrandy)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1120,7 +1115,8 @@ MACHINE_CONFIG_START(cninja_state::edrandy)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1171,7 +1167,7 @@ MACHINE_CONFIG_START(cninja_state::robocop2)
MCFG_CPU_PROGRAM_MAP(robocop2_map)
MCFG_CPU_ADD("audiocpu", H6280, XTAL(32'220'000) / 8)
MCFG_CPU_PROGRAM_MAP(sound_map_146)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_DECO_IRQ_ADD("irq", "screen")
MCFG_DECO_IRQ_RASTER1_IRQ_CB(INPUTLINE("maincpu", 3))
@ -1195,7 +1191,8 @@ MACHINE_CONFIG_START(cninja_state::robocop2)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1209,7 +1206,8 @@ MACHINE_CONFIG_START(cninja_state::robocop2)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1238,8 +1236,6 @@ MACHINE_CONFIG_START(cninja_state::robocop2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_SOUND_ADD("ym1", YM2203, XTAL(32'220'000) / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
@ -1288,7 +1284,8 @@ MACHINE_CONFIG_START(cninja_state::mutantf)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1303,7 +1300,8 @@ MACHINE_CONFIG_START(cninja_state::mutantf)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -1333,8 +1331,6 @@ MACHINE_CONFIG_START(cninja_state::mutantf)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_YM2151_ADD("ymsnd", XTAL(32'220'000) / 9)
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) // IRQ2
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(cninja_state,sound_bankswitch_w))

View File

@ -254,7 +254,8 @@ MACHINE_CONFIG_START(darkseal_state::darkseal)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(3) // both these tilemaps need to be twice the y size of usual!
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x64) // both these tilemaps need to be twice the y size of usual!
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -267,7 +268,8 @@ MACHINE_CONFIG_START(darkseal_state::darkseal)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -559,7 +559,8 @@ MACHINE_CONFIG_START(dassault_state::dassault)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0)
@ -575,7 +576,8 @@ MACHINE_CONFIG_START(dassault_state::dassault)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0)

View File

@ -373,7 +373,8 @@ MACHINE_CONFIG_START(dblewing_state::dblewing)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -61,7 +61,7 @@ public:
DECLARE_DRIVER_INIT(hvysmsh);
DECLARE_DRIVER_INIT(wcvol95);
virtual void video_start() override;
uint32_t screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
void descramble_sound( const char *tag );
DECO16IC_BANK_CB_MEMBER(bank_callback);
@ -82,7 +82,7 @@ void deco156_state::video_start()
}
uint32_t deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
uint32_t deco156_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
//FIXME: flip_screen_x should not be written!
flip_screen_set_no_update(1);
@ -331,7 +331,7 @@ MACHINE_CONFIG_START(deco156_state::hvysmsh)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
MCFG_PALETTE_ADD("palette", 1024)
@ -339,7 +339,8 @@ MACHINE_CONFIG_START(deco156_state::hvysmsh)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -383,7 +384,7 @@ MACHINE_CONFIG_START(deco156_state::wcvol95)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
MCFG_PALETTE_ADD("palette", 1024)
@ -391,7 +392,8 @@ MACHINE_CONFIG_START(deco156_state::wcvol95)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -1877,7 +1877,8 @@ MACHINE_CONFIG_START(captaven_state::captaven)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -1890,7 +1891,8 @@ MACHINE_CONFIG_START(captaven_state::captaven)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0) // pf3 is in 8bpp mode, pf4 is not used
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(0)
MCFG_DECO16IC_PF1_SIZE(DECO_32x32)
MCFG_DECO16IC_PF2_SIZE(DECO_32x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
MCFG_DECO16IC_PF2_TRANS_MASK(0x00)
MCFG_DECO16IC_PF1_COL_BANK(0x10)
@ -1954,7 +1956,8 @@ MACHINE_CONFIG_START(fghthist_state::fghthist)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1969,7 +1972,8 @@ MACHINE_CONFIG_START(fghthist_state::fghthist)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -2079,7 +2083,8 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -2094,7 +2099,8 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
MCFG_DECO16IC_PF1_COL_BANK(0x04)
@ -2161,7 +2167,8 @@ MACHINE_CONFIG_DERIVED(dragngun_state::lockloadu, dragngun)
MCFG_DECO_IRQ_LIGHTGUN_IRQ_CB(DEVWRITELINE("irq_merger", input_merger_any_high_device, in_w<2>))
MCFG_DEVICE_MODIFY("tilegen2")
MCFG_DECO16IC_WIDTH12(0) // lockload definitely wants pf34 half width..
MCFG_DECO16IC_PF1_SIZE(DECO_32x32)
MCFG_DECO16IC_PF2_SIZE(DECO_32x32) // lockload definitely wants pf34 half width..
MACHINE_CONFIG_END
MACHINE_CONFIG_START(dragngun_state::lockload)
@ -2205,7 +2212,8 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -2220,7 +2228,8 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(0) // lockload definitely wants pf34 half width..
MCFG_DECO16IC_PF1_SIZE(DECO_32x32)
MCFG_DECO16IC_PF2_SIZE(DECO_32x32) // lockload definitely wants pf34 half width..
MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
MCFG_DECO16IC_PF1_COL_BANK(0x04)
@ -2246,8 +2255,6 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_YM2151_ADD("ymsnd", 32220000/9)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<1>))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
@ -2289,7 +2296,8 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -2304,7 +2312,8 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)
@ -2368,7 +2377,8 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -2383,7 +2393,8 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x20)

View File

@ -237,7 +237,8 @@ MACHINE_CONFIG_START(dietgo_state::dietgo)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -334,7 +334,8 @@ MACHINE_CONFIG_START(dreambal_state::dreambal)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -344,7 +344,8 @@ MACHINE_CONFIG_START(funkyjet_state::funkyjet)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -312,7 +312,8 @@ MACHINE_CONFIG_START(miragemj_state::mirage)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -357,7 +357,8 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldx)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -940,7 +940,8 @@ MACHINE_CONFIG_START(rohga_state::rohga)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1|4)
MCFG_DECO16IC_PF1_SIZE(DECO_64x64)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -955,7 +956,8 @@ MACHINE_CONFIG_START(rohga_state::rohga)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1027,7 +1029,8 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1042,7 +1045,8 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1119,7 +1123,8 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(0)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_32x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1134,7 +1139,8 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(0)
MCFG_DECO16IC_PF1_SIZE(DECO_32x32)
MCFG_DECO16IC_PF2_SIZE(DECO_32x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0)
@ -1212,7 +1218,8 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1|4)
MCFG_DECO16IC_PF1_SIZE(DECO_64x64)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -1227,7 +1234,8 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -422,7 +422,8 @@ MACHINE_CONFIG_START(simpl156_state::chainrec)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -403,7 +403,8 @@ MACHINE_CONFIG_START(sshangha_state::sshangha)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x10)

View File

@ -450,7 +450,8 @@ MACHINE_CONFIG_START(supbtime_state::supbtime)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)

View File

@ -266,7 +266,8 @@ MACHINE_CONFIG_START(vaportra_state::vaportra)
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x00)
@ -281,7 +282,8 @@ MACHINE_CONFIG_START(vaportra_state::vaportra)
MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
MCFG_DECO16IC_SPLIT(0)
MCFG_DECO16IC_WIDTH12(1)
MCFG_DECO16IC_PF1_SIZE(DECO_64x32)
MCFG_DECO16IC_PF2_SIZE(DECO_64x32)
MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
MCFG_DECO16IC_PF1_COL_BANK(0x30)

View File

@ -24,8 +24,7 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_deco146(*this, "ioprot"),
m_deco104(*this, "ioprot104"),
m_ioprot(*this, "ioprot"),
m_decocomn(*this, "deco_common"),
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
@ -50,8 +49,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
optional_device<deco146_device> m_deco146;
optional_device<deco104_device> m_deco104;
optional_device<deco_146_base_device> m_ioprot;
required_device<decocomn_device> m_decocomn;
required_device<deco16ic_device> m_deco_tilegen1;
required_device<deco16ic_device> m_deco_tilegen2;

View File

@ -71,7 +71,7 @@ Note: A version of Night Slashers runs on the DE-0395-1 using the 156 encryption
Custom chip 101 = Arm6 cpu
Custom chip 113 = Alpha blending
Custom chip 153 = Alpha blending (same functions as 113, smaller PQFP package)
Custom chip 99 = 'Ace' chip (Special alpha blending?)
Custom chip 99 = 'Ace' chip (Alpha blending with palette effects)
Custom chip 156 = Encrypted ARM cpu
Custom chip 102 = Encrypted 68000 cpu
@ -174,7 +174,7 @@ Rowscroll style:
#include "video/deco16ic.h"
#include "render.h"
DEFINE_DEVICE_TYPE(DECO16IC, deco16ic_device, "deco16ic", "DECO 55 / 56 / 74 / 141 IC")
DEFINE_DEVICE_TYPE(DECO16IC, deco16ic_device, "deco16ic", "DECO 55 / 56 / 74 / 141 Tilemap Generator")
deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, DECO16IC, tag, owner, clock),
@ -192,7 +192,8 @@ deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag,
m_pf12_last_big(0),
m_pf1_8bpp_mode(0),
m_split(0),
m_tilemapsizes(1),
m_pf1_size(0),
m_pf2_size(0),
m_pf1_trans_mask(0xf),
m_pf2_trans_mask(0xf),
m_pf1_colour_bank(0),
@ -226,27 +227,31 @@ void deco16ic_device::device_start()
m_bank1_cb.bind_relative_to(*owner());
m_bank2_cb.bind_relative_to(*owner());
int fullheight1 = 0;
int fullwidth1 = 0;
int fullheight = 0;
int fullwidth = 0;
int fullheight_8x8 = 0;
int fullheight2 = 0;
int fullwidth2 = 0;
if (m_pf1_size&DECO_32x64)
fullheight1 = 1;
if (m_tilemapsizes&4)
fullheight_8x8 = 1;
if (m_pf1_size&DECO_64x32)
fullwidth1 = 1;
if (m_tilemapsizes&2)
fullheight = 1;
if (m_pf2_size&DECO_32x64)
fullheight2 = 1;
if (m_tilemapsizes&1)
fullwidth = 1;
if (m_pf2_size&DECO_64x32)
fullwidth2 = 1;
m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth ? 64 : 32, fullheight ?64 : 32);
// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, m_tilemapsizes ? 64 : 32, 32);
m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, 64 , fullheight_8x8 ? 64 : 32); // nitroball
m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth ? 64 : 32, fullheight ? 64 : 32);
m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth ? 64 : 32, fullheight ? 64 : 32);
m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
m_pf1_tilemap_8x8->set_transparent_pen(0);
m_pf2_tilemap_8x8->set_transparent_pen(0);
@ -262,7 +267,6 @@ void deco16ic_device::device_start()
m_pf2_data = make_unique_clear<uint16_t[]>(0x2000 / 2);
m_pf12_control = make_unique_clear<uint16_t[]>(0x10 / 2);
save_item(NAME(m_use_custom_pf1));
save_item(NAME(m_use_custom_pf2));
save_item(NAME(m_pf1_bank));
@ -744,7 +748,7 @@ static int deco16_pf_update(
int numrows = rows;
// wolffang uses a larger 8x8 tilemap for the Japanese intro text, everything else seems to need this logic tho?
if (!(tilemapsizes & 4))
if (!(tilemapsizes & DECO_32x64))
numrows = rows >> 1;
// cap at tilemap size
@ -846,8 +850,8 @@ void deco16ic_device::pf_update( const uint16_t *rowscroll_1_ptr, const uint16_t
/* Update scrolling and tilemap enable */
m_pf1_rowscroll_ptr = rowscroll_1_ptr;
m_pf2_rowscroll_ptr = rowscroll_2_ptr;
m_use_custom_pf2 = deco16_pf_update(m_pf2_tilemap_8x8, m_pf2_tilemap_16x16, rowscroll_2_ptr, m_pf12_control[3], m_pf12_control[4], m_pf12_control[5] >> 8, m_pf12_control[6] >> 8, m_tilemapsizes);
m_use_custom_pf1 = deco16_pf_update(m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, rowscroll_1_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, m_tilemapsizes);
m_use_custom_pf2 = deco16_pf_update(m_pf2_tilemap_8x8, m_pf2_tilemap_16x16, rowscroll_2_ptr, m_pf12_control[3], m_pf12_control[4], m_pf12_control[5] >> 8, m_pf12_control[6] >> 8, m_pf2_size);
m_use_custom_pf1 = deco16_pf_update(m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, rowscroll_1_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, m_pf1_size);
/* Update banking and global flip state */
if (!m_bank1_cb.isnull())

View File

@ -14,6 +14,10 @@
#pragma once
#define DECO_32x32 0
#define DECO_64x32 1
#define DECO_32x64 2
#define DECO_64x64 3
/***************************************************************************
TYPE DEFINITIONS
@ -34,7 +38,8 @@ public:
static void set_bank1_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank1_cb = callback; }
static void set_bank2_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank2_cb = callback; }
static void set_split(device_t &device, int split) { downcast<deco16ic_device &>(device).m_split = split; }
static void set_full_width(device_t &device, int width) { downcast<deco16ic_device &>(device).m_tilemapsizes = width; }
static void set_pf1_size(device_t &device, int size) { downcast<deco16ic_device &>(device).m_pf1_size = size; }
static void set_pf2_size(device_t &device, int size) { downcast<deco16ic_device &>(device).m_pf2_size = size; }
static void set_pf1_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_trans_mask = mask; }
static void set_pf2_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf2_trans_mask = mask; }
static void set_pf1_col_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_colourmask = mask; }
@ -142,7 +147,8 @@ private:
int m_pf1_8bpp_mode;
int m_split;
int m_tilemapsizes;
int m_pf1_size;
int m_pf2_size;
int m_pf1_trans_mask, m_pf2_trans_mask;
int m_pf1_colour_bank, m_pf2_colour_bank;
int m_pf1_colourmask, m_pf2_colourmask;
@ -174,9 +180,12 @@ DECLARE_DEVICE_TYPE(DECO16IC, deco16ic_device)
#define MCFG_DECO16IC_SPLIT(_split) \
deco16ic_device::set_split(*device, _split);
#define MCFG_DECO16IC_PF1_SIZE(_size) \
deco16ic_device::set_pf1_size(*device, _size);
#define MCFG_DECO16IC_WIDTH12(_width) \
deco16ic_device::set_full_width(*device, _width);
#define MCFG_DECO16IC_PF2_SIZE(_size) \
deco16ic_device::set_pf2_size(*device, _size);
#define MCFG_DECO16IC_PF1_TRANS_MASK(_mask) \
deco16ic_device::set_pf1_trans_mask(*device, _mask);