summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/amiga/arsystems.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/amiga/arsystems.cpp')
-rw-r--r--src/mame/amiga/arsystems.cpp42
1 files changed, 20 insertions, 22 deletions
diff --git a/src/mame/amiga/arsystems.cpp b/src/mame/amiga/arsystems.cpp
index 53cf48f1100..7385e2773b0 100644
--- a/src/mame/amiga/arsystems.cpp
+++ b/src/mame/amiga/arsystems.cpp
@@ -55,7 +55,6 @@
#include "cpu/m68000/m68000.h"
#include "machine/nvram.h"
-#include "machine/amigafdc.h"
#include "speaker.h"
@@ -90,11 +89,11 @@ public:
void init_dlta();
void init_argh();
- template <int Coin> DECLARE_CUSTOM_INPUT_MEMBER(coin_counter_r);
+ template <int Coin> ioport_value coin_counter_r();
DECLARE_INPUT_CHANGED_MEMBER(coin_changed_callback);
protected:
- virtual void machine_reset() override;
+ virtual void machine_reset() override ATTR_COLD;
void arcadia_multibios_change_game(uint16_t data);
void arcadia_cia_0_portb_w(uint8_t data);
@@ -102,10 +101,10 @@ protected:
private:
inline void generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0);
- void a500_mem(address_map &map);
- void arcadia_map(address_map &map);
- void argh_map(address_map &map);
- void overlay_512kb_map(address_map &map);
+ void a500_mem(address_map &map) ATTR_COLD;
+ void arcadia_map(address_map &map) ATTR_COLD;
+ void argh_map(address_map &map) ATTR_COLD;
+ void overlay_512kb_map(address_map &map) ATTR_COLD;
optional_memory_region m_bios_region, m_rom_board;
@@ -167,7 +166,7 @@ void arcadia_amiga_state::arcadia_cia_0_portb_w(uint8_t data)
*************************************/
template <int Coin>
-CUSTOM_INPUT_MEMBER(arcadia_amiga_state::coin_counter_r)
+ioport_value arcadia_amiga_state::coin_counter_r()
{
/* return coin counter values */
return m_coin_counter[Coin] & 3;
@@ -260,15 +259,15 @@ static INPUT_PORTS_START( arcadia )
PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(arcadia_amiga_state, coin_counter_r<0>)
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(arcadia_amiga_state, coin_counter_r<1>)
+ PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(arcadia_amiga_state::coin_counter_r<0>))
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(arcadia_amiga_state::coin_counter_r<1>))
PORT_START("joy_0_dat")
- PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(arcadia_amiga_state, amiga_joystick_convert<0>)
+ PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(arcadia_amiga_state::amiga_joystick_convert<0>))
PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("joy_1_dat")
- PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(arcadia_amiga_state, amiga_joystick_convert<1>)
+ PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(arcadia_amiga_state::amiga_joystick_convert<1>))
PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("potgo")
@@ -291,8 +290,8 @@ static INPUT_PORTS_START( arcadia )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_START("COINS")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 0)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 1)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(arcadia_amiga_state::coin_changed_callback), 0)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(arcadia_amiga_state::coin_changed_callback), 1)
INPUT_PORTS_END
// ar_ldrb manual specifically claims to have 4-way gate sticks.
@@ -328,7 +327,7 @@ void arcadia_amiga_state::arcadia(machine_config &config)
ADDRESS_MAP_BANK(config, m_overlay).set_map(&arcadia_amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
ADDRESS_MAP_BANK(config, m_chipset).set_map(&arcadia_amiga_state::ocs_map).set_options(ENDIANNESS_BIG, 16, 9, 0x200);
- AMIGA_COPPER(config, m_copper, amiga_state::CLK_7M_NTSC);
+ AGNUS_COPPER(config, m_copper, amiga_state::CLK_7M_NTSC);
m_copper->set_host_cpu_tag(m_maincpu);
m_copper->mem_read_cb().set(FUNC(amiga_state::chip_ram_r));
m_copper->set_ecs_mode(false);
@@ -343,14 +342,13 @@ void arcadia_amiga_state::arcadia(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga)
/* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
+ SPEAKER(config, "speaker", 2).front();
PAULA_8364(config, m_paula, amiga_state::CLK_C1_NTSC);
- m_paula->add_route(0, "lspeaker", 0.50);
- m_paula->add_route(1, "rspeaker", 0.50);
- m_paula->add_route(2, "rspeaker", 0.50);
- m_paula->add_route(3, "lspeaker", 0.50);
+ m_paula->add_route(0, "speaker", 0.50, 0);
+ m_paula->add_route(1, "speaker", 0.50, 1);
+ m_paula->add_route(2, "speaker", 0.50, 1);
+ m_paula->add_route(3, "speaker", 0.50, 0);
m_paula->mem_read_cb().set(FUNC(amiga_state::chip_ram_r));
m_paula->int_cb().set(FUNC(amiga_state::paula_int_w));
@@ -366,7 +364,7 @@ void arcadia_amiga_state::arcadia(machine_config &config)
m_cia_1->irq_wr_callback().set(FUNC(amiga_state::cia_1_irq));
/* fdc */
- AMIGA_FDC(config, m_fdc, amiga_state::CLK_7M_NTSC);
+ PAULA_FDC(config, m_fdc, amiga_state::CLK_7M_NTSC);
m_fdc->index_callback().set("cia_1", FUNC(mos8520_device::flag_w));
m_fdc->read_dma_callback().set(FUNC(amiga_state::chip_ram_r));
m_fdc->write_dma_callback().set(FUNC(amiga_state::chip_ram_w));