Micscellaneous cleanup/fixes:

machine/z80scc.cpp: Fixed a cast-to-bool that broke detection of changes
to one register bit.

formats/fsmeta.cpp: Use visitors with variants where it makes sense.

docs: Updated minimum required SDL version to 2.0.6 for all targets,
added note that Python 3 is included with Xcode and updated instructions
for downloading stand-alone Python 3 for macOS.

ksys573.cpp: Don't create an insane number of textures for fghtmn and
pnchman internal artwork.

Tidied another batch of slot machine layouts.
This commit is contained in:
Vas Crabb 2022-04-30 06:42:09 +10:00
parent 96175af1ea
commit 6ff40e09bd
48 changed files with 1625 additions and 45034 deletions

View File

@ -72,7 +72,7 @@ building MAME on a 64-bit system. Instructions may need to be adjusted for
use the portable SDL (Simple DirectMedia Layer) interfaces instead, you can
add **OSD=sdl** to the make options. The main emulator binary will have an
``sdl`` prefix prepended (e.g. ``sdlmame.exe``). You
will need to install the MSYS2 packages for SDL 2 version 2.0.3 or later.
will need to install the MSYS2 packages for SDL 2 version 2.0.6 or later.
* By default, MAME will include the native Windows debugger. To also include
the portable Qt debugger, add **USE_QTDEBUG=1** to the make options. You
will need to install the MSYS2 packages for Qt 5.
@ -224,7 +224,7 @@ Fedora Linux
------------
Youll need a few prerequisites from your Linux distribution. Make sure you get
SDL2 2.0.4 or later as earlier versions are buggy::
SDL2 2.0.6 or later as earlier versions lack required functionality::
sudo dnf install gcc gcc-c++ SDL2-devel SDL2_ttf-devel libXi-devel libXinerama-devel qt5-qtbase-devel qt5-qttools expat-devel fontconfig-devel alsa-lib-devel pulseaudio-libs-devel
@ -246,7 +246,7 @@ Debian and Ubuntu (including Raspberry Pi and ODROID devices)
-------------------------------------------------------------
Youll need a few prerequisites from your Linux distribution. Make sure you get
SDL2 2.0.4 or later as earlier versions are buggy::
SDL2 2.0.6 or later as earlier versions lack required functionality::
sudo apt-get install git build-essential python libsdl2-dev libsdl2-ttf-dev libfontconfig-dev libpulse-dev qt5-default
@ -274,8 +274,10 @@ Apple macOS
Youll need a few prerequisites to get started. Make sure youre on OS X 10.14
Mojave or later for Intel Macs or macOS 11.0 Big Sur for Apple Silicon. You will
need SDL2 2.0.4 or later for Intel or SDL2 2.0.14 on Apple Silicon. Youll also
need to install Python 3.
need SDL2 2.0.6 or later for Intel or SDL2 2.0.14 on Apple Silicon. Youll also
need to install Python 3 its currently included with the Xcode command line
tools, but you can also install a stand-alone version or get it via the Homebrew
package manager.
* Install **Xcode** from the Mac App Store or
`ADC <https://developer.apple.com/download/more/>`_ (AppleID required).
@ -298,12 +300,13 @@ Next youll need to get SDL2 installed.
**SDL2.framework** folder from the SDL disk image into the **Frameworks**
folder. You will have to authenticate with your user password.
Now get Python 3 set up:
If you dont already have it, get Python 3 set up:
* Go to the `official Python site <https://www.python.org/>`_ and click the link
to the download page for the current version (this was
`Python 3.10.0 <https://www.python.org/downloads/release/python-3100/>`_ at
the time of writing).
* Go to the official Python site, navigate to the
`releases for macOS <https://www.python.org/downloads/macos/>`_, and click the
link to download the installer for the latest stable release (this was
`Python 3.10.4 <https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg>`_
at the time of writing).
* Scroll down to the “Files” section, and download the macOS version (called
“macOS 64-bit universal2 installer” or similar).
* Once the package downloads, open it and follow the standard installation

View File

@ -2287,7 +2287,7 @@ void z80scc_channel::do_sccreg_wr15(uint8_t data)
LOG("Tx underr./EOM ints: %s\n", data & WR15_TX_EOM ? WR15NO : "disabled");
LOG("Break/Abort ints : %s\n", data & WR15_BREAK_ABORT ? WR15NO : "disabled");
const bool old_reg = m_wr15;
const uint8_t old_reg = m_wr15;
m_wr15 = data;
if ((old_reg & WR15_ZEROCOUNT) != (m_wr15 & WR15_ZEROCOUNT))
{

View File

@ -34,48 +34,37 @@ const char *meta_data::entry_name(meta_name name)
return "";
}
template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...)->overloaded<Ts...>;
template <class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template <class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
meta_type meta_value::type() const
{
std::optional<meta_type> result;
std::visit(overloaded
{
[&result](const std::string &) { result = meta_type::string; },
[&result](std::uint64_t) { result = meta_type::number; },
[&result](bool) { result = meta_type::flag; },
[&result](const util::arbitrary_datetime &) { result = meta_type::date; }
}, value);
std::visit(
overloaded{
[&result] (const std::string &) { result = meta_type::string; },
[&result] (std::uint64_t) { result = meta_type::number; },
[&result] (bool) { result = meta_type::flag; },
[&result] (const util::arbitrary_datetime &) { result = meta_type::date; } },
value);
return *result;
}
std::string meta_value::to_string() const
{
std::string result;
switch (type())
{
case meta_type::string:
result = as_string();
break;
case meta_type::number:
result = util::string_format("0x%x", as_number());
break;
case meta_type::flag:
result = as_flag() ? "t" : "f";
break;
case meta_type::date:
{
auto dt = as_date();
result = util::string_format("%04d-%02d-%02d %02d:%02d:%02d",
dt.year, dt.month, dt.day_of_month,
dt.hour, dt.minute, dt.second);
}
break;
default:
throw false;
}
std::visit(
overloaded{
[&result] (const std::string &val) { result = val; },
[&result] (std::uint64_t val) { result = util::string_format("0x%x", val); },
[&result] (bool val) { result = val ? "t" : "f"; },
[&result] (const util::arbitrary_datetime &val)
{
result = util::string_format("%04d-%02d-%02d %02d:%02d:%02d",
val.year, val.month, val.day_of_month,
val.hour, val.minute, val.second);
} },
value);
return result;
}

View File

@ -103,10 +103,11 @@ struct meta_description {
meta_name m_name;
meta_value m_default;
bool m_ro;
std::function<void(const meta_value &)> m_validator;
std::function<void (const meta_value &)> m_validator;
const char *m_tooltip;
template<typename T> meta_description(meta_name name, T def, bool ro, std::function<void(meta_value)> validator, const char *tooltip) :
template <typename T>
meta_description(meta_name name, T def, bool ro, std::function<void(meta_value)> validator, const char *tooltip) :
meta_description(name, meta_value(def), ro, std::move(validator), tooltip)
{}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff