From 1eed9f5783df3c43d970fc9817434c6f7b9c959c Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 25 Jan 2018 23:29:53 +0900 Subject: deco16ic : Split pf1/2 size (#3124) cninja : cleanup ioprot --- src/mame/drivers/backfire.cpp | 6 ++-- src/mame/drivers/boogwing.cpp | 6 ++-- src/mame/drivers/cbuster.cpp | 6 ++-- src/mame/drivers/cninja.cpp | 82 ++++++++++++++++++++----------------------- src/mame/drivers/darkseal.cpp | 6 ++-- src/mame/drivers/dassault.cpp | 6 ++-- src/mame/drivers/dblewing.cpp | 3 +- src/mame/drivers/deco156.cpp | 14 ++++---- src/mame/drivers/deco32.cpp | 41 ++++++++++++++-------- src/mame/drivers/dietgo.cpp | 3 +- src/mame/drivers/dreambal.cpp | 3 +- src/mame/drivers/funkyjet.cpp | 3 +- src/mame/drivers/mirage.cpp | 3 +- src/mame/drivers/pktgaldx.cpp | 3 +- src/mame/drivers/rohga.cpp | 24 ++++++++----- src/mame/drivers/simpl156.cpp | 3 +- src/mame/drivers/sshangha.cpp | 3 +- src/mame/drivers/supbtime.cpp | 3 +- src/mame/drivers/vaportra.cpp | 6 ++-- src/mame/includes/cninja.h | 6 ++-- src/mame/video/deco16ic.cpp | 46 +++++++++++++----------- src/mame/video/deco16ic.h | 17 ++++++--- 22 files changed, 171 insertions(+), 122 deletions(-) diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp index 56ad4a63af1..c1e33fdd2bb 100644 --- a/src/mame/drivers/backfire.cpp +++ b/src/mame/drivers/backfire.cpp @@ -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) diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp index 6f148c43135..d0e28e8d02c 100644 --- a/src/mame/drivers/boogwing.cpp +++ b/src/mame/drivers/boogwing.cpp @@ -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) diff --git a/src/mame/drivers/cbuster.cpp b/src/mame/drivers/cbuster.cpp index d31f5ec13c6..8745a1228aa 100644 --- a/src/mame/drivers/cbuster.cpp +++ b/src/mame/drivers/cbuster.cpp @@ -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) diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp index c4ea6502a9a..dc90dbd4e24 100644 --- a/src/mame/drivers/cninja.cpp +++ b/src/mame/drivers/cninja.cpp @@ -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)) diff --git a/src/mame/drivers/darkseal.cpp b/src/mame/drivers/darkseal.cpp index 6cf89c7c60b..5be4235c948 100644 --- a/src/mame/drivers/darkseal.cpp +++ b/src/mame/drivers/darkseal.cpp @@ -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) diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp index c0b928dab9c..dae99ead976 100644 --- a/src/mame/drivers/dassault.cpp +++ b/src/mame/drivers/dassault.cpp @@ -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) diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp index 2e71fb59227..5b712685117 100644 --- a/src/mame/drivers/dblewing.cpp +++ b/src/mame/drivers/dblewing.cpp @@ -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) diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp index 67302fcc953..fbb43b349f3 100644 --- a/src/mame/drivers/deco156.cpp +++ b/src/mame/drivers/deco156.cpp @@ -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) diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp index 0cf5d5d3b3b..00855e9735d 100644 --- a/src/mame/drivers/deco32.cpp +++ b/src/mame/drivers/deco32.cpp @@ -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) diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp index a45c2d90126..a7581ce8b43 100644 --- a/src/mame/drivers/dietgo.cpp +++ b/src/mame/drivers/dietgo.cpp @@ -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) diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp index bcf19ad71ce..ff31cb95805 100644 --- a/src/mame/drivers/dreambal.cpp +++ b/src/mame/drivers/dreambal.cpp @@ -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) diff --git a/src/mame/drivers/funkyjet.cpp b/src/mame/drivers/funkyjet.cpp index 61bf7de8856..3bcb4e18ba2 100644 --- a/src/mame/drivers/funkyjet.cpp +++ b/src/mame/drivers/funkyjet.cpp @@ -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) diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp index 07f08aff7ad..6c7f6ba69d9 100644 --- a/src/mame/drivers/mirage.cpp +++ b/src/mame/drivers/mirage.cpp @@ -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) diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp index 314ed65749c..24144403b2e 100644 --- a/src/mame/drivers/pktgaldx.cpp +++ b/src/mame/drivers/pktgaldx.cpp @@ -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) diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 1a72c8a71d1..614c9b60eb2 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -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) diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp index 468650ce31a..39cbb70eb3c 100644 --- a/src/mame/drivers/simpl156.cpp +++ b/src/mame/drivers/simpl156.cpp @@ -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) diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp index b8e27cd950a..18a89cee2ee 100644 --- a/src/mame/drivers/sshangha.cpp +++ b/src/mame/drivers/sshangha.cpp @@ -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) diff --git a/src/mame/drivers/supbtime.cpp b/src/mame/drivers/supbtime.cpp index 5d4e828bf81..25207f54cc7 100644 --- a/src/mame/drivers/supbtime.cpp +++ b/src/mame/drivers/supbtime.cpp @@ -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) diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp index fcbdf1a3f96..03fd01cb5bc 100644 --- a/src/mame/drivers/vaportra.cpp +++ b/src/mame/drivers/vaportra.cpp @@ -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) diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h index 37ca518c69b..39dc909609e 100644 --- a/src/mame/includes/cninja.h +++ b/src/mame/includes/cninja.h @@ -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 m_maincpu; required_device m_audiocpu; - optional_device m_deco146; - optional_device m_deco104; + optional_device m_ioprot; required_device m_decocomn; required_device m_deco_tilegen1; required_device m_deco_tilegen2; diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp index e81919cf148..bb8f257d242 100644 --- a/src/mame/video/deco16ic.cpp +++ b/src/mame/video/deco16ic.cpp @@ -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(0x2000 / 2); m_pf12_control = make_unique_clear(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()) diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h index d3740530335..c42ba186786 100644 --- a/src/mame/video/deco16ic.h +++ b/src/mame/video/deco16ic.h @@ -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(device).m_bank1_cb = callback; } static void set_bank2_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast(device).m_bank2_cb = callback; } static void set_split(device_t &device, int split) { downcast(device).m_split = split; } - static void set_full_width(device_t &device, int width) { downcast(device).m_tilemapsizes = width; } + static void set_pf1_size(device_t &device, int size) { downcast(device).m_pf1_size = size; } + static void set_pf2_size(device_t &device, int size) { downcast(device).m_pf2_size = size; } static void set_pf1_trans_mask(device_t &device, int mask) { downcast(device).m_pf1_trans_mask = mask; } static void set_pf2_trans_mask(device_t &device, int mask) { downcast(device).m_pf2_trans_mask = mask; } static void set_pf1_col_mask(device_t &device, int mask) { downcast(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); -- cgit v1.2.3