diff options
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 |
commit | 3f160f7580146269641516c98545034d062934f7 (patch) | |
tree | a7ff66b79f2bf716b5c46afa8fa000aec4fca9ae | |
parent | f540069a6bd414d56113008ffb41c2ed937ff678 (diff) |
fromanc2.cpp: Cleanups (nw)
-rw-r--r-- | src/mame/drivers/fromanc2.cpp | 93 | ||||
-rw-r--r-- | src/mame/includes/fromanc2.h | 48 | ||||
-rw-r--r-- | src/mame/video/fromanc2.cpp | 77 |
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; |