Merge branch 'release0253' into mainline-master

This commit is contained in:
Vas Crabb 2023-03-28 03:37:44 +11:00
commit d02a125df0
6 changed files with 97 additions and 83 deletions

View File

@ -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

View File

@ -17,7 +17,7 @@ license:CC0-1.0
<softwarelist name="svision" description="Watara Supervision cartridges">
<software name="2in1">
<description>2 in 1 - Block Buster + Cross High (Euro, USA)</description>
<description>2 in 1 - Block Buster + Cross High (Europe, USA)</description>
<year>199?</year>
<publisher>Supervision</publisher>
<info name="serial" value="SV10033" />
@ -30,7 +30,7 @@ license:CC0-1.0
</software>
<software name="2in1a">
<description>2 in 1 - Hash Blocks + Eagle Plan (Euro, USA)</description>
<description>2 in 1 - Hash Blocks + Eagle Plan (Europe, USA)</description>
<year>1992</year>
<publisher>GTC Inc</publisher>
<info name="serial" value="SV10024" />
@ -43,7 +43,7 @@ license:CC0-1.0
</software>
<software name="alien">
<description>Alien (Euro, USA)</description>
<description>Alien (Europe, USA)</description>
<year>199?</year>
<publisher>Supervision</publisher>
<info name="serial" value="SV10010" />
@ -56,7 +56,7 @@ license:CC0-1.0
</software>
<software name="balonfgt">
<description>Balloon Fight (Euro, USA)</description>
<description>Balloon Fight (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">
@ -67,7 +67,7 @@ license:CC0-1.0
</software>
<software name="blockbus">
<description>Block Buster (Euro, USA)</description>
<description>Block Buster (Europe, USA)</description>
<year>199?</year>
<publisher>Supervision</publisher>
<info name="serial" value="SV10001" />
@ -80,7 +80,7 @@ license:CC0-1.0
</software>
<software name="brainpow">
<description>Brain Power (Euro, USA)</description>
<description>Brain Power (Europe, USA)</description>
<year>199?</year>
<publisher>Supervision</publisher>
<info name="serial" value="SV10023" />
@ -104,7 +104,7 @@ license:CC0-1.0
</software>
<software name="carrier">
<description>Carrier (Euro, USA)</description>
<description>Carrier (Europe, USA)</description>
<year>199?</year>
<publisher>Travellmate</publisher>
<info name="serial" value="SV10004" />
@ -117,7 +117,7 @@ license:CC0-1.0
</software>
<software name="cavewond">
<description>Cave Wonders (Euro, USA)</description>
<description>Cave Wonders (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<part name="cart" interface="svision_cart">
@ -128,7 +128,7 @@ license:CC0-1.0
</software>
<software name="challtnk">
<description>Challenger Tank (Euro, USA)</description>
<description>Challenger Tank (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10017" />
@ -141,7 +141,7 @@ license:CC0-1.0
</software>
<software name="chimera">
<description>Chimera (Euro, USA)</description>
<description>Chimera (Europe, USA)</description>
<year>199?</year>
<publisher>Supervision</publisher>
<info name="serial" value="SV10016" />
@ -189,7 +189,7 @@ license:CC0-1.0
</software>
<software name="crsshigh">
<description>Cross High (Euro, USA)</description>
<description>Cross High (Europe, USA)</description>
<year>1991</year>
<publisher>GTC Inc</publisher>
<part name="cart" interface="svision_cart">
@ -200,7 +200,7 @@ license:CC0-1.0
</software>
<software name="crystbal">
<description>Crystball (Euro, USA)</description>
<description>Crystball (Europe, USA)</description>
<year>1991</year>
<publisher>Travellmate</publisher>
<part name="cart" interface="svision_cart">
@ -211,7 +211,7 @@ license:CC0-1.0
</software>
<software name="crystbala" cloneof="crystbal">
<description>Crystball (Euro, USA, earlier)</description>
<description>Crystball (Europe, USA, earlier)</description>
<year>1991</year>
<publisher>Travellmate</publisher>
<part name="cart" interface="svision_cart">
@ -235,7 +235,7 @@ license:CC0-1.0
</software>
<software name="dhero">
<description>Delta Hero (Euro, USA)</description>
<description>Delta Hero (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10040" />
@ -259,7 +259,7 @@ license:CC0-1.0
</software>
<software name="eaglplan">
<description>Eagle Plan (Euro, USA)</description>
<description>Eagle Plan (Europe, USA)</description>
<year>1992</year>
<publisher>GTC Inc</publisher>
<info name="serial" value="SV10005" />
@ -272,7 +272,7 @@ license:CC0-1.0
</software>
<software name="earthdef">
<description>Earth Defender (Euro, USA)</description>
<description>Earth Defender (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<part name="cart" interface="svision_cart">
@ -283,7 +283,7 @@ license:CC0-1.0
</software>
<software name="fatcraft">
<description>Fatal Craft (Euro, USA)</description>
<description>Fatal Craft (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<part name="cart" interface="svision_cart">
@ -294,7 +294,7 @@ license:CC0-1.0
</software>
<software name="fcombat"> <!-- this might be bad dump, there are two bad tiles in the data -->
<description>Final Combat (Euro, USA)</description>
<description>Final Combat (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">
@ -305,7 +305,7 @@ license:CC0-1.0
</software>
<software name="fcombata" cloneof="fcombat">
<description>Final Combat (Alt)</description>
<description>Final Combat (alt)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<info name="serial" value="SV10031" />
@ -318,7 +318,7 @@ license:CC0-1.0
</software>
<software name="galcrus">
<description>Galactic Crusader (Euro, USA)</description>
<description>Galactic Crusader (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10029" />
@ -331,7 +331,7 @@ license:CC0-1.0
</software>
<software name="galaxy">
<description>Galaxy Fighter (Euro, USA)</description>
<description>Galaxy Fighter (Europe, USA)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<part name="cart" interface="svision_cart">
@ -342,7 +342,7 @@ license:CC0-1.0
</software>
<software name="gp">
<description>Grand Prix (Euro, USA)</description>
<description>Grand Prix (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10021" />
@ -355,7 +355,7 @@ license:CC0-1.0
</software>
<software name="happyp">
<description>Happy Pairs (Euro, USA)</description>
<description>Happy Pairs (Europe, USA)</description>
<year>1992</year>
<publisher>Sachen</publisher>
<info name="serial" value="SV10035" />
@ -381,7 +381,7 @@ license:CC0-1.0
</software>
<software name="hashbloc">
<description>Hash Blocks (Euro, USA)</description>
<description>Hash Blocks (Europe, USA)</description>
<year>1991</year>
<publisher>GTC Inc</publisher>
<info name="serial" value="SV10002" />
@ -405,7 +405,7 @@ license:CC0-1.0
</software>
<software name="herokid">
<description>Hero Kid (Euro, USA)</description>
<description>Hero Kid (Europe, USA)</description>
<year>1992</year>
<publisher>Hartung</publisher>
<info name="serial" value="SV10011" />
@ -418,7 +418,7 @@ license:CC0-1.0
</software>
<software name="honeybee">
<description>Honey Bee (Euro, USA)</description>
<description>Honey Bee (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10018" />
@ -431,7 +431,7 @@ license:CC0-1.0
</software>
<software name="jackyluc">
<description>Jacky Lucky (Euro, USA)</description>
<description>Jacky Lucky (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<part name="cart" interface="svision_cart">
@ -442,7 +442,7 @@ license:CC0-1.0
</software>
<software name="jagbombr">
<description>Jaguar Bomber (Euro, USA)</description>
<description>Jaguar Bomber (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10025" />
@ -455,7 +455,7 @@ license:CC0-1.0
</software>
<software name="johnadv">
<description>John Adventure (Euro, USA)</description>
<description>John Adventure (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10036" />
@ -468,7 +468,7 @@ license:CC0-1.0
</software>
<software name="juggler">
<description>Juggler (Euro, USA)</description>
<description>Juggler (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10043" />
@ -481,7 +481,7 @@ license:CC0-1.0
</software>
<software name="kabiisl">
<description>Kabi Island - Gold in Island (Euro, USA)</description>
<description>Kabi Island - Gold in Island (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">
@ -514,7 +514,7 @@ license:CC0-1.0
</software>
<software name="linear">
<description>Linear Racing (Euro, USA)</description>
<description>Linear Racing (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10007" />
@ -527,7 +527,7 @@ license:CC0-1.0
</software>
<software name="maginx">
<description>Magincross (Euro, USA)</description>
<description>Magincross (Europe, USA)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<info name="serial" value="SV10039" />
@ -554,7 +554,7 @@ license:CC0-1.0
</software>
<software name="mattablt">
<description>Matta Blatta (Euro, USA)</description>
<description>Matta Blatta (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10020" />
@ -567,7 +567,7 @@ license:CC0-1.0
</software>
<software name="olympict">
<description>Olympic Trials (Euro, USA)</description>
<description>Olympic Trials (Europe, USA)</description>
<year>1992</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10019" />
@ -580,7 +580,7 @@ license:CC0-1.0
</software>
<software name="p52sea">
<description>P-52 Sea Battle (Euro, USA)</description>
<description>P-52 Sea Battle (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10006" />
@ -593,7 +593,7 @@ license:CC0-1.0
</software>
<software name="pacboy">
<description>PacBoy &amp; Mouse (Euro, USA)</description>
<description>PacBoy &amp; Mouse (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10008" />
@ -617,7 +617,7 @@ license:CC0-1.0
</software>
<software name="penguinh">
<description>Penguin Hideout (Euro, USA)</description>
<description>Penguin Hideout (Europe, USA)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<info name="serial" value="SV10032" />
@ -630,7 +630,7 @@ license:CC0-1.0
</software>
<software name="policebu">
<description>Police Bust (Euro, USA)</description>
<description>Police Bust (Europe, USA)</description>
<year>199?</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10014" />
@ -656,7 +656,7 @@ license:CC0-1.0
</software>
<software name="pyramid">
<description>Pyramid (Euro, USA)</description>
<description>Pyramid (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">
@ -691,7 +691,7 @@ license:CC0-1.0
</software>
<software name="soccerch">
<description>Soccer Champion (Euro, USA)</description>
<description>Soccer Champion (Europe, USA)</description>
<year>199?</year>
<publisher>Hartung</publisher>
<info name="serial" value="SV10034" />
@ -728,7 +728,7 @@ license:CC0-1.0
</software>
<software name="sssnake">
<description>SSSnake (Euro, USA)</description>
<description>SSSnake (Europe, USA)</description>
<year>199?</year>
<publisher>Watara</publisher>
<info name="serial" value="SV10009" />
@ -741,7 +741,7 @@ license:CC0-1.0
</software>
<software name="sblock">
<description>Super Block (Euro, USA)</description>
<description>Super Block (Europe, USA)</description>
<year>1992</year>
<publisher>Bon Treasure</publisher>
<info name="serial" value="SV10022" />
@ -754,7 +754,7 @@ license:CC0-1.0
</software>
<software name="skong">
<description>Super Kong (Euro, USA)</description>
<description>Super Kong (Europe, USA)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<info name="serial" value="SV10042" />
@ -780,7 +780,7 @@ license:CC0-1.0
</software>
<software name="tasac">
<description>Tasac 2010 (Euro, USA)</description>
<description>Tasac 2010 (Europe, USA)</description>
<year>1992</year>
<publisher>Thin Chen Enterprise</publisher>
<info name="serial" value="SV10026" />
@ -793,7 +793,7 @@ license:CC0-1.0
</software>
<software name="tennis92">
<description>Tennis Pro '92 (Euro, USA)</description>
<description>Tennis Pro '92 (Europe, USA)</description>
<year>1992</year>
<publisher>B.I.T.S.</publisher>
<info name="serial" value="SV10015" />
@ -817,7 +817,7 @@ license:CC0-1.0
</software>
<software name="thunter">
<description>Treasure Hunter (Euro, USA, 1993)</description>
<description>Treasure Hunter (Europe, USA, 1993)</description>
<year>1993</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">
@ -828,7 +828,7 @@ license:CC0-1.0
</software>
<software name="thuntera" cloneof="thunter">
<description>Treasure Hunter (Euro, USA, 1992)</description>
<description>Treasure Hunter (Europe, USA, 1992)</description>
<year>1992</year>
<publisher>Watara</publisher>
<part name="cart" interface="svision_cart">

View File

@ -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;

View File

@ -51,12 +51,10 @@ using test_delegate = delegate<char (void const *&)>;
// 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<void const *>(static_cast<base_b *>(&o)), addr, static_cast<void const *>(&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<virtual_base *>(&d) != addr)
osd_printf_error("Error testing delegate this pointer adjustment for incomplete class %p -> %p (expected %p)\n", static_cast<void const *>(&d), addr, static_cast<void const *>(static_cast<virtual_base *>(&d)));
#endif // defined(_MSC_VER) && !defined(__clang__)
#endif // !defined(_LIBCPP_VERSION) || (_LIBCPP_VERSION >= 7000)
}

View File

@ -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<clock_device> m_uart_clock;
required_device<nvram_device> m_nvram;
required_device<pccard_slot_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));
}

View File

@ -87,12 +87,16 @@ public:
template <typename T>
HRESULT enum_attached_devices(int devclass, T &&callback) const
{
struct helper
{
static BOOL CALLBACK callback(LPCDIDEVICEINSTANCE instance, LPVOID ref)
{
return (*reinterpret_cast<T *>(ref))(instance);
}
};
return m_dinput->EnumDevices(
devclass,
[] (LPCDIDEVICEINSTANCE instance, LPVOID ref) -> BOOL
{
return (*reinterpret_cast<T *>(ref))(instance);
},
&helper::callback,
reinterpret_cast<LPVOID>(&callback),
DIEDFL_ATTACHEDONLY);
}