mirror of https://github.com/987123879113/mame.git
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:
parent
96175af1ea
commit
6ff40e09bd
|
@ -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
|
|||
------------
|
||||
|
||||
You’ll 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)
|
|||
-------------------------------------------------------------
|
||||
|
||||
You’ll 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
|
|||
|
||||
You’ll need a few prerequisites to get started. Make sure you’re 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. You’ll also
|
||||
need to install Python 3.
|
||||
need SDL2 2.0.6 or later for Intel or SDL2 2.0.14 on Apple Silicon. You’ll also
|
||||
need to install Python 3 – it’s 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 you’ll 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 don’t 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
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue