summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-02-17 13:03:36 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-02-17 13:03:36 -0500
commit3f160f7580146269641516c98545034d062934f7 (patch)
treea7ff66b79f2bf716b5c46afa8fa000aec4fca9ae
parentf540069a6bd414d56113008ffb41c2ed937ff678 (diff)
fromanc2.cpp: Cleanups (nw)
-rw-r--r--src/mame/drivers/fromanc2.cpp93
-rw-r--r--src/mame/includes/fromanc2.h48
-rw-r--r--src/mame/video/fromanc2.cpp77
3 files changed, 87 insertions, 131 deletions
diff --git a/src/mame/drivers/fromanc2.cpp b/src/mame/drivers/fromanc2.cpp
index 3449a7e9048..846aae43839 100644
--- a/src/mame/drivers/fromanc2.cpp
+++ b/src/mame/drivers/fromanc2.cpp
@@ -35,13 +35,7 @@
*
*************************************/
-INTERRUPT_GEN_MEMBER(fromanc2_state::fromanc2_interrupt)
-{
- device.execute().set_input_line(1, HOLD_LINE);
-}
-
-
-WRITE16_MEMBER(fromanc2_state::fromanc2_sndcmd_w)
+WRITE16_MEMBER(fromanc2_state::sndcmd_w)
{
m_soundlatch->write(space, offset, (data >> 8) & 0xff); // 1P (LEFT)
m_soundlatch2->write(space, offset, data & 0xff); // 2P (RIGHT)
@@ -50,12 +44,12 @@ WRITE16_MEMBER(fromanc2_state::fromanc2_sndcmd_w)
m_sndcpu_nmi_flag = 0;
}
-WRITE16_MEMBER(fromanc2_state::fromanc2_portselect_w)
+WRITE16_MEMBER(fromanc2_state::portselect_w)
{
m_portselect = data;
}
-READ16_MEMBER(fromanc2_state::fromanc2_keymatrix_r)
+READ16_MEMBER(fromanc2_state::keymatrix_r)
{
uint16_t ret;
@@ -99,7 +93,7 @@ WRITE16_MEMBER(fromanc2_state::fromancr_gfxbank_eeprom_w)
}
}
-WRITE16_MEMBER(fromanc2_state::fromanc2_subcpu_w)
+WRITE16_MEMBER(fromanc2_state::subcpu_w)
{
m_datalatch1 = data;
@@ -107,7 +101,7 @@ WRITE16_MEMBER(fromanc2_state::fromanc2_subcpu_w)
m_subcpu_int_flag = 0;
}
-READ16_MEMBER(fromanc2_state::fromanc2_subcpu_r)
+READ16_MEMBER(fromanc2_state::subcpu_r)
{
m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
m_subcpu_nmi_flag = 0;
@@ -115,41 +109,41 @@ READ16_MEMBER(fromanc2_state::fromanc2_subcpu_r)
return (m_datalatch_2h << 8) | m_datalatch_2l;
}
-READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_l)
+READ8_MEMBER(fromanc2_state::maincpu_r_l)
{
return m_datalatch1 & 0x00ff;
}
-READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_h)
+READ8_MEMBER(fromanc2_state::maincpu_r_h)
{
m_subcpu_int_flag = 1;
return (m_datalatch1 & 0xff00) >> 8;
}
-WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_l)
+WRITE8_MEMBER(fromanc2_state::maincpu_w_l)
{
m_datalatch_2l = data;
}
-WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_h)
+WRITE8_MEMBER(fromanc2_state::maincpu_w_h)
{
m_datalatch_2h = data;
}
-WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_nmi_clr)
+WRITE8_MEMBER(fromanc2_state::subcpu_nmi_clr)
{
m_subcpu_nmi_flag = 1;
}
-READ8_MEMBER(fromanc2_state::fromanc2_sndcpu_nmi_clr)
+READ8_MEMBER(fromanc2_state::sndcpu_nmi_clr)
{
m_sndcpu_nmi_flag = 1;
return 0xff;
}
-WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_rombank_w)
+WRITE8_MEMBER(fromanc2_state::subcpu_rombank_w)
{
// Change ROM BANK
membank("bank1")->set_entry(data & 0x03);
@@ -158,12 +152,6 @@ WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_rombank_w)
membank("bank2")->set_entry((data & 0x0c) >> 2);
}
-// custom handler allowing byte-smeared writes
-WRITE16_MEMBER(fromanc2_state::uart_w)
-{
- m_uart->ins8250_w(space, offset, data & 0xff);
-}
-
/*************************************
*
@@ -191,15 +179,15 @@ ADDRESS_MAP_START(fromanc2_state::fromanc2_main_map)
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r ) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(subcpu_r) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITE(fromanc2_gfxbank_0_w) // GFXBANK (1P)
AM_RANGE(0xd01500, 0xd01501) AM_WRITE(fromanc2_gfxbank_1_w) // GFXBANK (2P)
AM_RANGE(0xd01600, 0xd01601) AM_WRITE_PORT("EEPROMOUT") // EEPROM DATA
- AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -219,15 +207,15 @@ ADDRESS_MAP_START(fromanc2_state::fromancr_main_map)
AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP // ?
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(subcpu_r) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP // COIN COUNTER ?
AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_gfxbank_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
- AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -238,13 +226,13 @@ ADDRESS_MAP_START(fromanc2_state::fromanc4_main_map)
AM_RANGE(0x800000, 0x81ffff) AM_RAM // WORK RAM
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd10000, 0xd10001) AM_WRITENOP // ?
AM_RANGE(0xd30000, 0xd30001) AM_WRITENOP // ?
AM_RANGE(0xd50000, 0xd50001) AM_WRITE_PORT("EEPROMOUT") // EEPROM DATA
- AM_RANGE(0xd70000, 0xd70001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd70000, 0xd70001) AM_WRITE(sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_WRITE(fromanc4_videoram_0_w) // VRAM FG (1P/2P)
AM_RANGE(0xd90000, 0xd9ffff) AM_WRITE(fromanc4_videoram_1_w) // VRAM BG (1P/2P)
@@ -253,7 +241,7 @@ ADDRESS_MAP_START(fromanc2_state::fromanc4_main_map)
AM_RANGE(0xdb0000, 0xdb0fff) AM_RAM_DEVWRITE("lpalette", palette_device, write16) AM_SHARE("lpalette") // PALETTE (1P)
AM_RANGE(0xdc0000, 0xdc0fff) AM_RAM_DEVWRITE("rpalette", palette_device, write16) AM_SHARE("rpalette") // PALETTE (2P)
- AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd10000, 0xd10001) AM_READ(keymatrix_r) // INPUT KEY MATRIX
AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe00000, 0xe0001d) AM_WRITE(fromanc4_gfxreg_0_w) // SCROLL, GFXBANK (1P/2P)
@@ -263,8 +251,7 @@ ADDRESS_MAP_START(fromanc2_state::fromanc4_main_map)
AM_RANGE(0xe30000, 0xe30013) AM_WRITENOP // ???
AM_RANGE(0xe40000, 0xe40013) AM_WRITENOP // ???
- AM_RANGE(0xe50000, 0xe5000f) AM_DEVREAD8("uart", ns16550_device, ins8250_r, 0x00ff) // EXT-COMM PORT ?
- AM_RANGE(0xe50000, 0xe5000f) AM_WRITE(uart_w) // EXT-COMM PORT ?
+ AM_RANGE(0xe50000, 0xe5000f) AM_DEVREADWRITE8("uart", ns16550_device, ins8250_r, ins8250_w, 0x00ff).cswidth(16) // EXT-COMM PORT ?
ADDRESS_MAP_END
@@ -277,10 +264,10 @@ ADDRESS_MAP_END
ADDRESS_MAP_START(fromanc2_state::fromanc2_sub_io_map)
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(fromanc2_subcpu_rombank_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
- AM_RANGE(0x04, 0x04) AM_READWRITE(fromanc2_maincpu_r_h, fromanc2_maincpu_w_h) // to/from MAIN CPU
- AM_RANGE(0x06, 0x06) AM_WRITE(fromanc2_subcpu_nmi_clr)
+ AM_RANGE(0x00, 0x00) AM_WRITE(subcpu_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(maincpu_r_l, maincpu_w_l) // to/from MAIN CPU
+ AM_RANGE(0x04, 0x04) AM_READWRITE(maincpu_r_h, maincpu_w_h) // to/from MAIN CPU
+ AM_RANGE(0x06, 0x06) AM_WRITE(subcpu_nmi_clr)
ADDRESS_MAP_END
@@ -294,7 +281,7 @@ ADDRESS_MAP_START(fromanc2_state::fromanc2_sound_io_map)
AM_RANGE(0x00, 0x00) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITENOP // snd cmd (1P) / ?
AM_RANGE(0x04, 0x04) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) // snd cmd (2P)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
- AM_RANGE(0x0c, 0x0c) AM_READ(fromanc2_sndcpu_nmi_clr)
+ AM_RANGE(0x0c, 0x0c) AM_READ(sndcpu_nmi_clr)
ADDRESS_MAP_END
@@ -512,7 +499,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromanc2_main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, fromanc2_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold)
MCFG_CPU_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromanc2_sound_map)
@@ -541,7 +528,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left)
MCFG_SCREEN_PALETTE("lpalette")
MCFG_SCREEN_ADD("rscreen", RASTER)
@@ -549,7 +536,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right)
MCFG_SCREEN_PALETTE("rpalette")
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2)
@@ -572,7 +559,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromancr_main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, fromanc2_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold)
MCFG_CPU_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromanc2_sound_map)
@@ -601,7 +588,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left)
MCFG_SCREEN_PALETTE("lpalette")
MCFG_SCREEN_ADD("rscreen", RASTER)
@@ -609,7 +596,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right)
MCFG_SCREEN_PALETTE("rpalette")
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr)
@@ -632,7 +619,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL(32'000'000)/2) /* 16.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromanc4_main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, fromanc2_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold)
MCFG_CPU_ADD("audiocpu", Z80, XTAL(32'000'000)/4) /* 8.00 MHz */
MCFG_CPU_PROGRAM_MAP(fromanc2_sound_map)
@@ -662,7 +649,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left)
MCFG_SCREEN_PALETTE("lpalette")
MCFG_SCREEN_ADD("rscreen", RASTER)
@@ -670,7 +657,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right)
MCFG_SCREEN_PALETTE("rpalette")
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4)
diff --git a/src/mame/includes/fromanc2.h b/src/mame/includes/fromanc2.h
index 98c25d69307..c86a7829417 100644
--- a/src/mame/includes/fromanc2.h
+++ b/src/mame/includes/fromanc2.h
@@ -52,20 +52,19 @@ public:
required_device<generic_latch_8_device> m_soundlatch2;
optional_device<ns16550_device> m_uart;
- DECLARE_WRITE16_MEMBER(fromanc2_sndcmd_w);
- DECLARE_WRITE16_MEMBER(fromanc2_portselect_w);
- DECLARE_READ16_MEMBER(fromanc2_keymatrix_r);
+ DECLARE_WRITE16_MEMBER(sndcmd_w);
+ DECLARE_WRITE16_MEMBER(portselect_w);
+ DECLARE_READ16_MEMBER(keymatrix_r);
DECLARE_WRITE16_MEMBER(fromancr_gfxbank_eeprom_w);
- DECLARE_WRITE16_MEMBER(fromanc2_subcpu_w);
- DECLARE_READ16_MEMBER(fromanc2_subcpu_r);
- DECLARE_READ8_MEMBER(fromanc2_maincpu_r_l);
- DECLARE_READ8_MEMBER(fromanc2_maincpu_r_h);
- DECLARE_WRITE8_MEMBER(fromanc2_maincpu_w_l);
- DECLARE_WRITE8_MEMBER(fromanc2_maincpu_w_h);
- DECLARE_WRITE8_MEMBER(fromanc2_subcpu_nmi_clr);
- DECLARE_READ8_MEMBER(fromanc2_sndcpu_nmi_clr);
- DECLARE_WRITE8_MEMBER(fromanc2_subcpu_rombank_w);
- DECLARE_WRITE16_MEMBER(uart_w);
+ DECLARE_WRITE16_MEMBER(subcpu_w);
+ DECLARE_READ16_MEMBER(subcpu_r);
+ DECLARE_READ8_MEMBER(maincpu_r_l);
+ DECLARE_READ8_MEMBER(maincpu_r_h);
+ DECLARE_WRITE8_MEMBER(maincpu_w_l);
+ DECLARE_WRITE8_MEMBER(maincpu_w_h);
+ DECLARE_WRITE8_MEMBER(subcpu_nmi_clr);
+ DECLARE_READ8_MEMBER(sndcpu_nmi_clr);
+ DECLARE_WRITE8_MEMBER(subcpu_rombank_w);
DECLARE_WRITE16_MEMBER(fromanc2_videoram_0_w);
DECLARE_WRITE16_MEMBER(fromanc2_videoram_1_w);
DECLARE_WRITE16_MEMBER(fromanc2_videoram_2_w);
@@ -92,31 +91,16 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(subcpu_nmi_r);
DECLARE_DRIVER_INIT(fromanc4);
DECLARE_DRIVER_INIT(fromanc2);
- TILE_GET_INFO_MEMBER(fromanc2_get_v0_l0_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v0_l1_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v0_l2_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v0_l3_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v1_l0_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v1_l1_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v1_l2_tile_info);
- TILE_GET_INFO_MEMBER(fromanc2_get_v1_l3_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v0_l0_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v0_l1_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v0_l2_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v1_l0_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v1_l1_tile_info);
- TILE_GET_INFO_MEMBER(fromancr_get_v1_l2_tile_info);
+ template<int VRAM, int Layer> TILE_GET_INFO_MEMBER(fromanc2_get_tile_info);
+ template<int VRAM, int Layer> TILE_GET_INFO_MEMBER(fromancr_get_tile_info);
virtual void machine_reset() override;
DECLARE_MACHINE_START(fromanc2);
DECLARE_VIDEO_START(fromanc2);
DECLARE_VIDEO_START(fromancr);
DECLARE_MACHINE_START(fromanc4);
DECLARE_VIDEO_START(fromanc4);
- uint32_t screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(fromanc2_interrupt);
- inline void fromanc2_get_tile_info( tile_data &tileinfo, int tile_index, int vram, int layer );
- inline void fromancr_get_tile_info( tile_data &tileinfo, int tile_index, int vram, int layer );
+ uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
inline void fromanc2_dispvram_w( offs_t offset, uint16_t data, uint16_t mem_mask, int vram, int layer );
inline void fromancr_vram_w(offs_t offset, uint16_t data, uint16_t mem_mask, int layer );
void fromancr_gfxbank_w( int data );
diff --git a/src/mame/video/fromanc2.cpp b/src/mame/video/fromanc2.cpp
index 3c84e46aa49..2eac256be6b 100644
--- a/src/mame/video/fromanc2.cpp
+++ b/src/mame/video/fromanc2.cpp
@@ -17,38 +17,23 @@
******************************************************************************/
-inline void fromanc2_state::fromanc2_get_tile_info( tile_data &tileinfo, int tile_index, int vram, int layer )
+template<int VRAM, int Layer>
+TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_tile_info)
{
- int tile = (m_videoram[vram][layer][tile_index] & 0x3fff) | (m_gfxbank[vram][layer] << 14);
- int color = (m_videoram[vram][layer][tile_index] & 0xc000) >> 14;
+ int tile = (m_videoram[VRAM][Layer][tile_index] & 0x3fff) | (m_gfxbank[VRAM][Layer] << 14);
+ int color = (m_videoram[VRAM][Layer][tile_index] & 0xc000) >> 14;
- SET_TILE_INFO_MEMBER(layer, tile, color, 0);
+ SET_TILE_INFO_MEMBER(Layer, tile, color, 0);
}
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l0_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 0, 0); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l1_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 0, 1); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l2_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 0, 2); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l3_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 0, 3); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l0_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 1, 0); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l1_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 1, 1); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l2_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 1, 2); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l3_tile_info){ fromanc2_get_tile_info(tileinfo, tile_index, 1, 3); }
-
-
-inline void fromanc2_state::fromancr_get_tile_info( tile_data &tileinfo, int tile_index, int vram, int layer )
+template<int VRAM, int Layer>
+TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_tile_info)
{
- int tile = m_videoram[vram][layer][tile_index] | (m_gfxbank[vram][layer] << 16);
+ int tile = m_videoram[VRAM][Layer][tile_index] | (m_gfxbank[VRAM][Layer] << 16);
- SET_TILE_INFO_MEMBER(layer, tile, 0, 0);
+ SET_TILE_INFO_MEMBER(Layer, tile, 0, 0);
}
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l0_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 0, 0); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l1_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 0, 1); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l2_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 0, 2); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l0_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 1, 0); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l1_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 1, 1); }
-TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l2_tile_info){ fromancr_get_tile_info(tileinfo, tile_index, 1, 2); }
-
/******************************************************************************
@@ -272,14 +257,14 @@ WRITE16_MEMBER(fromanc2_state::fromanc4_gfxreg_2_w)
VIDEO_START_MEMBER(fromanc2_state,fromanc2)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 3>, "v0_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 3>, "v1_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
for (int screen = 0; screen < 2; screen++)
{
@@ -310,13 +295,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromanc2)
VIDEO_START_MEMBER(fromanc2_state,fromancr)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
@@ -346,13 +331,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromancr)
VIDEO_START_MEMBER(fromanc2_state,fromanc4)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
@@ -386,7 +371,7 @@ VIDEO_START_MEMBER(fromanc2_state,fromanc4)
******************************************************************************/
-uint32_t fromanc2_state::screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t fromanc2_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
@@ -403,7 +388,7 @@ uint32_t fromanc2_state::screen_update_fromanc2_left(screen_device &screen, bitm
return 0;
}
-uint32_t fromanc2_state::screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t fromanc2_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;