diff --git a/docs/source/initialsetup/compilingmame.rst b/docs/source/initialsetup/compilingmame.rst index ffe9be349cd..b61b3ca6335 100644 --- a/docs/source/initialsetup/compilingmame.rst +++ b/docs/source/initialsetup/compilingmame.rst @@ -10,7 +10,10 @@ All Platforms * To compile MAME, you need a C++17 compiler and runtime library. We support building with GCC version 7.2 or later and clang version 6 or - later. MAME should run with GNU libstdc++ version 7.2 or later. + later. MAME should run with GNU libstdc++ version 7.2 or later or + libc++ version 7 or later. The initial release of any major version + of GCC should be avoided. For example, if you want to compile MAME + with GCC 10, you should use version 10.3 or later. * Whenever you are changing build parameters, (for example changing optimisation settings, or adding tools to the compile list), or system diff --git a/hash/svision.xml b/hash/svision.xml index bbbd8468131..e7e99108b9b 100644 --- a/hash/svision.xml +++ b/hash/svision.xml @@ -17,7 +17,7 @@ license:CC0-1.0 - 2 in 1 - Block Buster + Cross High (Euro, USA) + 2 in 1 - Block Buster + Cross High (Europe, USA) 199? Supervision @@ -30,7 +30,7 @@ license:CC0-1.0 - 2 in 1 - Hash Blocks + Eagle Plan (Euro, USA) + 2 in 1 - Hash Blocks + Eagle Plan (Europe, USA) 1992 GTC Inc @@ -43,7 +43,7 @@ license:CC0-1.0 - Alien (Euro, USA) + Alien (Europe, USA) 199? Supervision @@ -56,7 +56,7 @@ license:CC0-1.0 - Balloon Fight (Euro, USA) + Balloon Fight (Europe, USA) 199? Watara @@ -67,7 +67,7 @@ license:CC0-1.0 - Block Buster (Euro, USA) + Block Buster (Europe, USA) 199? Supervision @@ -80,7 +80,7 @@ license:CC0-1.0 - Brain Power (Euro, USA) + Brain Power (Europe, USA) 199? Supervision @@ -104,7 +104,7 @@ license:CC0-1.0 - Carrier (Euro, USA) + Carrier (Europe, USA) 199? Travellmate @@ -117,7 +117,7 @@ license:CC0-1.0 - Cave Wonders (Euro, USA) + Cave Wonders (Europe, USA) 1992 Bon Treasure @@ -128,7 +128,7 @@ license:CC0-1.0 - Challenger Tank (Euro, USA) + Challenger Tank (Europe, USA) 199? Watara @@ -141,7 +141,7 @@ license:CC0-1.0 - Chimera (Euro, USA) + Chimera (Europe, USA) 199? Supervision @@ -189,7 +189,7 @@ license:CC0-1.0 - Cross High (Euro, USA) + Cross High (Europe, USA) 1991 GTC Inc @@ -200,7 +200,7 @@ license:CC0-1.0 - Crystball (Euro, USA) + Crystball (Europe, USA) 1991 Travellmate @@ -211,7 +211,7 @@ license:CC0-1.0 - Crystball (Euro, USA, earlier) + Crystball (Europe, USA, earlier) 1991 Travellmate @@ -235,7 +235,7 @@ license:CC0-1.0 - Delta Hero (Euro, USA) + Delta Hero (Europe, USA) 1992 Bon Treasure @@ -259,7 +259,7 @@ license:CC0-1.0 - Eagle Plan (Euro, USA) + Eagle Plan (Europe, USA) 1992 GTC Inc @@ -272,7 +272,7 @@ license:CC0-1.0 - Earth Defender (Euro, USA) + Earth Defender (Europe, USA) 1992 Bon Treasure @@ -283,7 +283,7 @@ license:CC0-1.0 - Fatal Craft (Euro, USA) + Fatal Craft (Europe, USA) 1992 Bon Treasure @@ -294,7 +294,7 @@ license:CC0-1.0 - Final Combat (Euro, USA) + Final Combat (Europe, USA) 199? Watara @@ -305,7 +305,7 @@ license:CC0-1.0 - Final Combat (Alt) + Final Combat (alt) 1992 Thin Chen Enterprise @@ -318,7 +318,7 @@ license:CC0-1.0 - Galactic Crusader (Euro, USA) + Galactic Crusader (Europe, USA) 199? Watara @@ -331,7 +331,7 @@ license:CC0-1.0 - Galaxy Fighter (Euro, USA) + Galaxy Fighter (Europe, USA) 1992 Thin Chen Enterprise @@ -342,7 +342,7 @@ license:CC0-1.0 - Grand Prix (Euro, USA) + Grand Prix (Europe, USA) 1992 Bon Treasure @@ -355,7 +355,7 @@ license:CC0-1.0 - Happy Pairs (Euro, USA) + Happy Pairs (Europe, USA) 1992 Sachen @@ -381,7 +381,7 @@ license:CC0-1.0 - Hash Blocks (Euro, USA) + Hash Blocks (Europe, USA) 1991 GTC Inc @@ -405,7 +405,7 @@ license:CC0-1.0 - Hero Kid (Euro, USA) + Hero Kid (Europe, USA) 1992 Hartung @@ -418,7 +418,7 @@ license:CC0-1.0 - Honey Bee (Euro, USA) + Honey Bee (Europe, USA) 199? Watara @@ -431,7 +431,7 @@ license:CC0-1.0 - Jacky Lucky (Euro, USA) + Jacky Lucky (Europe, USA) 1992 Bon Treasure @@ -442,7 +442,7 @@ license:CC0-1.0 - Jaguar Bomber (Euro, USA) + Jaguar Bomber (Europe, USA) 1992 Bon Treasure @@ -455,7 +455,7 @@ license:CC0-1.0 - John Adventure (Euro, USA) + John Adventure (Europe, USA) 199? Watara @@ -468,7 +468,7 @@ license:CC0-1.0 - Juggler (Euro, USA) + Juggler (Europe, USA) 1992 Bon Treasure @@ -481,7 +481,7 @@ license:CC0-1.0 - Kabi Island - Gold in Island (Euro, USA) + Kabi Island - Gold in Island (Europe, USA) 199? Watara @@ -514,7 +514,7 @@ license:CC0-1.0 - Linear Racing (Euro, USA) + Linear Racing (Europe, USA) 199? Watara @@ -527,7 +527,7 @@ license:CC0-1.0 - Magincross (Euro, USA) + Magincross (Europe, USA) 1992 Thin Chen Enterprise @@ -554,7 +554,7 @@ license:CC0-1.0 - Matta Blatta (Euro, USA) + Matta Blatta (Europe, USA) 199? Watara @@ -567,7 +567,7 @@ license:CC0-1.0 - Olympic Trials (Euro, USA) + Olympic Trials (Europe, USA) 1992 Watara @@ -580,7 +580,7 @@ license:CC0-1.0 - P-52 Sea Battle (Euro, USA) + P-52 Sea Battle (Europe, USA) 199? Watara @@ -593,7 +593,7 @@ license:CC0-1.0 - PacBoy & Mouse (Euro, USA) + PacBoy & Mouse (Europe, USA) 199? Watara @@ -617,7 +617,7 @@ license:CC0-1.0 - Penguin Hideout (Euro, USA) + Penguin Hideout (Europe, USA) 1992 Thin Chen Enterprise @@ -630,7 +630,7 @@ license:CC0-1.0 - Police Bust (Euro, USA) + Police Bust (Europe, USA) 199? Bon Treasure @@ -656,7 +656,7 @@ license:CC0-1.0 - Pyramid (Euro, USA) + Pyramid (Europe, USA) 199? Watara @@ -691,7 +691,7 @@ license:CC0-1.0 - Soccer Champion (Euro, USA) + Soccer Champion (Europe, USA) 199? Hartung @@ -728,7 +728,7 @@ license:CC0-1.0 - SSSnake (Euro, USA) + SSSnake (Europe, USA) 199? Watara @@ -741,7 +741,7 @@ license:CC0-1.0 - Super Block (Euro, USA) + Super Block (Europe, USA) 1992 Bon Treasure @@ -754,7 +754,7 @@ license:CC0-1.0 - Super Kong (Euro, USA) + Super Kong (Europe, USA) 1992 Thin Chen Enterprise @@ -780,7 +780,7 @@ license:CC0-1.0 - Tasac 2010 (Euro, USA) + Tasac 2010 (Europe, USA) 1992 Thin Chen Enterprise @@ -793,7 +793,7 @@ license:CC0-1.0 - Tennis Pro '92 (Euro, USA) + Tennis Pro '92 (Europe, USA) 1992 B.I.T.S. @@ -817,7 +817,7 @@ license:CC0-1.0 - Treasure Hunter (Euro, USA, 1993) + Treasure Hunter (Europe, USA, 1993) 1993 Watara @@ -828,7 +828,7 @@ license:CC0-1.0 - Treasure Hunter (Euro, USA, 1992) + Treasure Hunter (Europe, USA, 1992) 1992 Watara diff --git a/src/emu/profiler.cpp b/src/emu/profiler.cpp index da310b851a4..19f3908f097 100644 --- a/src/emu/profiler.cpp +++ b/src/emu/profiler.cpp @@ -91,7 +91,8 @@ real_profiler_state::real_profiler_state() void real_profiler_state::reset(bool enabled) noexcept { - assert(!m_filoptr || (m_filoptr == m_filo)); + // disabling the profiler from the UI happens while PROFILER_EXTRA is active + //assert(!m_filoptr || (m_filoptr == m_filo)); m_text_time = attotime::never; diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index 9f1165efeb0..6b44a324ade 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -51,12 +51,10 @@ using test_delegate = delegate; // type //------------------------------------------------- -#if !defined(_LIBCPP_VERSION) || (_LIBCPP_VERSION >= 7000) test_delegate make_diamond_class_delegate(char (diamond_inheritance::*func)(void const *&), diamond_inheritance *obj) { return test_delegate(func, obj); } -#endif // !defined(_LIBCPP_VERSION) || (_LIBCPP_VERSION >= 7000) //------------------------------------------------- @@ -1488,7 +1486,6 @@ void validate_delegates_mfp() if (&o != addr) osd_printf_error("Error testing delegate this pointer adjustment for virtual member function through base class pointer %p -> %p (expected %p)\n", static_cast(static_cast(&o)), addr, static_cast(&o)); -#if !defined(_LIBCPP_VERSION) || (_LIBCPP_VERSION >= 7000) // test creating delegates for a forward-declared class cb1 = make_diamond_class_delegate(&diamond_inheritance::get_derived_a, &d); cb2 = make_diamond_class_delegate(&diamond_inheritance::get_derived_b, &d); @@ -1518,7 +1515,6 @@ void validate_delegates_mfp() if (static_cast(&d) != addr) osd_printf_error("Error testing delegate this pointer adjustment for incomplete class %p -> %p (expected %p)\n", static_cast(&d), addr, static_cast(static_cast(&d))); #endif // defined(_MSC_VER) && !defined(__clang__) -#endif // !defined(_LIBCPP_VERSION) || (_LIBCPP_VERSION >= 7000) } diff --git a/src/mame/amstrad/nc.cpp b/src/mame/amstrad/nc.cpp index 3af400aa8ef..5a83538db6b 100644 --- a/src/mame/amstrad/nc.cpp +++ b/src/mame/amstrad/nc.cpp @@ -41,9 +41,11 @@ ***************************************************************************/ #include "emu.h" + #include "bus/centronics/ctronics.h" #include "bus/rs232/rs232.h" #include "cpu/z80/z80.h" +#include "imagedev/floppy.h" #include "machine/clock.h" #include "machine/i8251.h" #include "machine/mc146818.h" @@ -55,12 +57,13 @@ #include "machine/timer.h" #include "machine/upd765.h" #include "sound/beep.h" -#include "imagedev/floppy.h" -#include "formats/pc_dsk.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" +#include "formats/pc_dsk.h" + #define LOG_GENERAL (1U << 0) #define LOG_DEBUG (1U << 1) #define LOG_IRQ (1U << 2) @@ -93,7 +96,10 @@ public: m_uart_clock(*this, "uart_clock"), m_nvram(*this, "nvram"), m_pcmcia(*this, "pcmcia"), - m_mem_view{ {*this, "block0"}, {*this, "block1"}, {*this, "block2"}, {*this, "block3"} }, + m_mem_view0(*this, "block0"), + m_mem_view1(*this, "block1"), + m_mem_view2(*this, "block2"), + m_mem_view3(*this, "block3"), m_keyboard(*this, "line%d", 0U), m_battery(*this, "battery") { @@ -137,7 +143,10 @@ protected: required_device m_uart_clock; required_device m_nvram; required_device m_pcmcia; - memory_view m_mem_view[4]; + memory_view m_mem_view0; + memory_view m_mem_view1; + memory_view m_mem_view2; + memory_view m_mem_view3; required_ioport_array<10> m_keyboard; required_ioport m_battery; @@ -263,26 +272,26 @@ private: void nc_state::mem_map(address_map &map) { - map(0x0000, 0x3fff).view(m_mem_view[0]); - m_mem_view[0][0](0x0000, 0x3fff).bankr(m_rombank[0]); - m_mem_view[0][1](0x0000, 0x3fff).bankrw(m_rambank[0]); - m_mem_view[0][2](0x0000, 0x3fff).rw(FUNC(nc_state::pcmcia_r<0>), FUNC(nc_state::pcmcia_w<0>)); - m_mem_view[0][3](0x0000, 0x3fff).bankr(m_rombank[0]); - map(0x4000, 0x7fff).view(m_mem_view[1]); - m_mem_view[1][0](0x4000, 0x7fff).bankr(m_rombank[1]); - m_mem_view[1][1](0x4000, 0x7fff).bankrw(m_rambank[1]); - m_mem_view[1][2](0x4000, 0x7fff).rw(FUNC(nc_state::pcmcia_r<1>), FUNC(nc_state::pcmcia_w<1>)); - m_mem_view[1][3](0x4000, 0x7fff).bankr(m_rombank[1]); - map(0x8000, 0xbfff).view(m_mem_view[2]); - m_mem_view[2][0](0x8000, 0xbfff).bankr(m_rombank[2]); - m_mem_view[2][1](0x8000, 0xbfff).bankrw(m_rambank[2]); - m_mem_view[2][2](0x8000, 0xbfff).rw(FUNC(nc_state::pcmcia_r<2>), FUNC(nc_state::pcmcia_w<2>)); - m_mem_view[2][3](0x8000, 0xbfff).bankr(m_rombank[2]); - map(0xc000, 0xffff).view(m_mem_view[3]); - m_mem_view[3][0](0xc000, 0xffff).bankr(m_rombank[3]); - m_mem_view[3][1](0xc000, 0xffff).bankrw(m_rambank[3]); - m_mem_view[3][2](0xc000, 0xffff).rw(FUNC(nc_state::pcmcia_r<3>), FUNC(nc_state::pcmcia_w<3>)); - m_mem_view[3][3](0xc000, 0xffff).bankr(m_rombank[3]); + map(0x0000, 0x3fff).view(m_mem_view0); + m_mem_view0[0](0x0000, 0x3fff).bankr(m_rombank[0]); + m_mem_view0[1](0x0000, 0x3fff).bankrw(m_rambank[0]); + m_mem_view0[2](0x0000, 0x3fff).rw(FUNC(nc_state::pcmcia_r<0>), FUNC(nc_state::pcmcia_w<0>)); + m_mem_view0[3](0x0000, 0x3fff).bankr(m_rombank[0]); + map(0x4000, 0x7fff).view(m_mem_view1); + m_mem_view1[0](0x4000, 0x7fff).bankr(m_rombank[1]); + m_mem_view1[1](0x4000, 0x7fff).bankrw(m_rambank[1]); + m_mem_view1[2](0x4000, 0x7fff).rw(FUNC(nc_state::pcmcia_r<1>), FUNC(nc_state::pcmcia_w<1>)); + m_mem_view1[3](0x4000, 0x7fff).bankr(m_rombank[1]); + map(0x8000, 0xbfff).view(m_mem_view2); + m_mem_view2[0](0x8000, 0xbfff).bankr(m_rombank[2]); + m_mem_view2[1](0x8000, 0xbfff).bankrw(m_rambank[2]); + m_mem_view2[2](0x8000, 0xbfff).rw(FUNC(nc_state::pcmcia_r<2>), FUNC(nc_state::pcmcia_w<2>)); + m_mem_view2[3](0x8000, 0xbfff).bankr(m_rombank[2]); + map(0xc000, 0xffff).view(m_mem_view3); + m_mem_view3[0](0xc000, 0xffff).bankr(m_rombank[3]); + m_mem_view3[1](0xc000, 0xffff).bankrw(m_rambank[3]); + m_mem_view3[2](0xc000, 0xffff).rw(FUNC(nc_state::pcmcia_r<3>), FUNC(nc_state::pcmcia_w<3>)); + m_mem_view3[3](0xc000, 0xffff).bankr(m_rombank[3]); } void nc100_state::io_map(address_map &map) @@ -1193,7 +1202,8 @@ void nc_state::memory_management_w(offs_t offset, uint8_t data) m_mmc[offset] = data; - m_mem_view[offset].select(BIT(m_mmc[offset], 6, 2)); + memory_view *const mem_view[4] = { &m_mem_view0, &m_mem_view1, &m_mem_view2, &m_mem_view3 }; + mem_view[offset]->select(BIT(m_mmc[offset], 6, 2)); m_rombank[offset]->set_entry(m_mmc[offset] & 0x3f & (m_rom_banks - 1)); m_rambank[offset]->set_entry(m_mmc[offset] & 0x3f & (m_ram_banks - 1)); } diff --git a/src/osd/modules/input/input_dinput.h b/src/osd/modules/input/input_dinput.h index 991444a7cce..037c9c0c511 100644 --- a/src/osd/modules/input/input_dinput.h +++ b/src/osd/modules/input/input_dinput.h @@ -87,12 +87,16 @@ public: template HRESULT enum_attached_devices(int devclass, T &&callback) const { + struct helper + { + static BOOL CALLBACK callback(LPCDIDEVICEINSTANCE instance, LPVOID ref) + { + return (*reinterpret_cast(ref))(instance); + } + }; return m_dinput->EnumDevices( devclass, - [] (LPCDIDEVICEINSTANCE instance, LPVOID ref) -> BOOL - { - return (*reinterpret_cast(ref))(instance); - }, + &helper::callback, reinterpret_cast(&callback), DIEDFL_ATTACHEDONLY); }