diff options
Diffstat (limited to 'src/mame/misc/epos.cpp')
-rw-r--r-- | src/mame/misc/epos.cpp | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/src/mame/misc/epos.cpp b/src/mame/misc/epos.cpp index 86ecaceb442..f433b6d1852 100644 --- a/src/mame/misc/epos.cpp +++ b/src/mame/misc/epos.cpp @@ -96,8 +96,8 @@ public: { } protected: - virtual void video_start() override; - virtual void video_reset() override; + virtual void video_start() override ATTR_COLD; + virtual void video_reset() override ATTR_COLD; static void set_pal_color(palette_device &palette, uint8_t offset, uint8_t data); // TODO: convert to an RGB converter and set_format @@ -124,11 +124,11 @@ public: void tristar8000(machine_config &config); - DECLARE_CUSTOM_INPUT_MEMBER(coin_r) { return m_coin_latch; } + ioport_value coin_r() { return m_coin_latch; } DECLARE_INPUT_CHANGED_MEMBER(coin_switch) { if (newval) m_coin_latch |= param; } protected: - virtual void machine_start() override; + virtual void machine_start() override ATTR_COLD; private: // I/O @@ -139,8 +139,8 @@ private: void coin_reset_w(uint8_t data) { m_coin_latch = 0; } void palette(palette_device &palette) const; - void io_map(address_map &map); - void prg_map(address_map &map); + void io_map(address_map &map) ATTR_COLD; + void prg_map(address_map &map) ATTR_COLD; }; class tristar9000_state : public epos_base_state @@ -158,8 +158,8 @@ public: void init_tristar9000(); protected: - virtual void machine_start() override; - virtual void machine_reset() override; + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; private: required_memory_bank_array<2> m_mainbank; @@ -178,13 +178,11 @@ private: uint8_t ay_porta_mpx_r(); void flip_screen_w(uint8_t data); void pal_w(offs_t offset, uint8_t data); - void io_map(address_map &map); - void prg_map(address_map &map); + void io_map(address_map &map) ATTR_COLD; + void prg_map(address_map &map) ATTR_COLD; }; -// video - /*************************************************************************** These games has one 32 byte palette PROM, connected to the RGB output this way: @@ -277,8 +275,6 @@ uint32_t epos_base_state::screen_update(screen_device &screen, bitmap_rgb32 &bit } -// machine - void tristar9000_state::decrypt_rom(offs_t offset, uint8_t data) { if (offset & 0x04) @@ -420,7 +416,7 @@ static INPUT_PORTS_START( megadon ) PORT_DIPSETTING( 0x80, "Contest" ) PORT_START("SYSTEM") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(tristar8000_state, coin_r) + PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(tristar8000_state::coin_r)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) PORT_SERVICE_NO_TOGGLE(0x10, IP_ACTIVE_LOW) @@ -437,8 +433,8 @@ static INPUT_PORTS_START( megadon ) // 2 inputs connected to 74ls74 CLK pins, only one is actually hooked up PORT_START("COIN") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, tristar8000_state, coin_switch, 0x01) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_MEMBER(DEVICE_SELF, tristar8000_state, coin_switch, 0x02) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(tristar8000_state::coin_switch), 0x01) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(tristar8000_state::coin_switch), 0x02) INPUT_PORTS_END @@ -708,7 +704,7 @@ void tristar9000_state::machine_reset() void tristar8000_state::tristar8000(machine_config &config) // EPOS TRISTAR 8000 PCB { // basic machine hardware - Z80(config, m_maincpu, XTAL(11'000'000) / 4); // 2.75 MHz schematics confirm 11MHz XTAL (see notes) + Z80(config, m_maincpu, 11_MHz_XTAL / 4); // 2.75 MHz schematics confirm 11MHz XTAL (see notes) m_maincpu->set_addrmap(AS_PROGRAM, &tristar8000_state::prg_map); m_maincpu->set_addrmap(AS_IO, &tristar8000_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(tristar8000_state::irq0_line_hold)); @@ -717,17 +713,14 @@ void tristar8000_state::tristar8000(machine_config &config) // EPOS TRISTAR 8000 // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate - screen.set_size(272, 241); - screen.set_visarea(0, 271, 0, 235); + screen.set_raw(11_MHz_XTAL / 2, 352, 0, 272, 258, 0, 236); // confirmed from schematics screen.set_screen_update(FUNC(tristar8000_state::screen_update)); PALETTE(config, m_palette, FUNC(tristar8000_state::palette), 32); // sound hardware SPEAKER(config, "mono").front_center(); - AY8912(config, "aysnd", XTAL(11'000'000) / 16).add_route(ALL_OUTPUTS, "mono", 1.0); // 0.6875 MHz, confirmed from schematics + AY8912(config, "aysnd", 11_MHz_XTAL / 16).add_route(ALL_OUTPUTS, "mono", 1.0); // 0.6875 MHz, confirmed from schematics } |