| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-mcd212: Assorted changes. [Ryan Holtz]
* Replaced verboselog with logmacro.
* Corrected end-of-line region control handling, fixing garbage in The Apprentice.
* Fixed screen bitmap handling to be more in line with MAME standards.
* Simplified region-control handling.
* Removed historical reliance on debug machine switches.
* Converted to use a map() function rather than an internal switch.
* Converted to use dipalette and rgb_t internally instead of separate CLUT arrays.
* Optimized by replacing rgb_t usage with uint32_t values.
* Optimized by calculating plane transparency on the fly.
* Templatized mix_lines to reduce inner-loop branching.
* Fixed a clamping issue with pre-calculated DYUV limits.
* Reduce effective color depth back to 6:6:6 to match hardware.
-cdrom: Allow recognizing CDI/2352 in cuesheets. [Ryan Holtz]
-cdic: Various audio-related changes. [Ryan Holtz]
* Attempt to descramble sectors that don't initially appear sensible.
* Added support for playing CDDA sectors.
* Fixed faulty logic in TOC processing.
|
| |
|
|
|
| |
Also changed the fix to ASIO itself to match the upstream change in
commit cd68912b7eb07f24e501e8cbff832b61ec292eea.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Moved common code for drawing about box, info viewer, and other text box menus to a base class; removed the last of the info viewer logic and the multi-line item hack from the base menu class.
* Added previous/next group navigation for general inputs and plugin input selection menus.
* Moved message catalog logic to lib/util, allowing osd and emu to use localised messages.
* Made the base menu class use the UI manager’s feature for holding session state rather than a static map and mutex.
* Improved menu event handling model, and fixed many issues, particularly with menus behaving badly when hidden/shown.
* Added better support for menus that don’t participate in the usual menu stack, like the menuless sliders and the save/load state menus.
* Made a number of menus refresh state when being shown after being hidden (fixes MT08121 among other issues).
* Fixed indication of mounted slot option in the slot option details menu.
* Improved appearance of background menus when emulation isn't running - draw all menus in the stack, and darken the background menus to make the edges of the active menu clearer.
* Fixed locale issues in -listxml.
-debugger: Made GUI debuggers more uniform.
* Added new memory view features to Win32 debugger.
* Fixed spelling of hexadecimal in Cocoa debugger and added decimal address option.
* Fixed duplicate keyboard shortcut in Cocoa debugger (Shift-Cmd-D was both new device window and 64-bit float format).
* Made keyboard shortcuts slightly more consistent across debuggers.
-plugins: Moved input selection menu and sequence polling code to a common library. Fixed the issue that prevented keyboard inputs being mapped with -steadykey on.
-docs: Started adding some documentation for MAME's internal UI, and updated the list of example front-ends.
-Regenerated message catalog sources. For translators, the new strings are mostly:
* The names of the inputs provided by the OS-dependent layer for things like fullscreen and video features. These show up in the user interface inputs menu.
* The names for automatically generated views. These show up in the video options menu - test with a system with a lot of screens to see more variants.
* The input macro plugin UI.
* A few format strings for analog input assignments.
* A few strings for the about box header.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* frontend: Added support for message context to localisations.
* frontend: Added string_view versions of the message lookup functions.
* frontend: Added a few more folder options to the internal UI.
* emu/softlist.cpp: Use more appropriate containers.
* Switched to Python 3 by default - this will become a requirement.
* Updated msgfmt.py for message context support.
* frontend: Show all software item info in the internal UI.
* frontend: Search alternate titles in software selection menu.
* 3rdparty/utf8proc: Updated to v2.6.1 (has several fixes).
* frontend: Added software filters for common info fields.
* frontend: Allow UI manager to hold onto persistent session data.
* frontend: Cache software lists for eight machines.
* frontend: Added support for loading localised system names.
* frontend: Add UI for selecting localised system names.
|
| | |
|
| |
|
|
|
| |
* Browsing from a location inside an archive causes MAME to hang.
* Files inside archives are not listed.
|
| |
|
|
| |
bit more consistent, fixed another bug with root paths.
|
| |
|
|
|
|
|
|
| |
* Got more slot card classes out of headers.
* Changed most of the Apple II cards still looking up ROM regions
manually to use required_region_ptr.
* Removed an unreferenced function leftover from copy-pasting another
device from the Videx Uniprint device.
|
| |
|
|
|
| |
* Turned `core_file` into an implementation of `random_read_write`.
* Turned PNG errors into a standard error category.
* Added a helper for generating what look like derived classes on-the-fly.
|
| |
|
|
|
|
|
|
|
|
| |
Added comments with V.24 interchange circuit numbers and names to
rs232.h to make the meanings of the abbreviated signal names clearer.
Moved a few slot card classes out of headers and into anonymous
namespaces to reduce compile depedencies and exported symbols.
Transliterated a Korean NES game title.
|
| |
|
|
| |
-util/delegate.cpp: Detect clang x86-64 thunk for first vtable entry.
|
| |
|
|
| |
-util/delegate.cpp: Fixed typo in comment.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The Itanium delegate has questionable value on on MinGW i686 as it
injects a conditional branch in the hot path for delegates anyway to
deal with the different __thiscall convention. It's somehow breaking
and causing memory corruption in full builds, but I don't have the time
to work out exactly which delegate type is the problematic one,
especially not with a release coming soon.
This will probably cause 32-bit MinGW builds to become substantially
larger.
|
| |
|
|
|
|
| |
At some point I'll make a proper header ABI detection. There's too much
stuff to keep in the delegate sources, and it will be useful for other
stuff like recompilers.
|
| |
|
|
| |
-util/delegate.cpp: Added a couple of comments about assumptions.
|
| |
|
|
|
|
|
|
| |
The MSVC C++ ABI doesn't reserve the first vtable entry for classes
without a virtual destructor, so the instruction to load the virtual
member function address may not need an immediate displacement.
Also recognise virtual member function call thunks for AArch64.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For Itanium ABI, two null member function pointers should compare equal
even if the undefined bits differ.
For MSVC ABI, there's all sorts of complexity around what happens when
you compare pointers to member functions for different inheritance
types.
You'll still occasionally get weird results comparing pointers to
members of different classes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resolve address space virtual member function addresses on constrcution
and call them directly. Provides a small but measurable improvement to
performance in drivers that use the recompiler and access the memory
system a lot.
Also made MSVC delegates capable of walking past all the thunks MSVC
puts in the way of actually calling a member function. I'm not
accounting for the "this" pointer being passed in RDX when the return
value is an oversize scalar. This is harmless because it won't see
anything that looks like a virtual call thunk using RCX when RCX points
to uninitialised space for the return value. It just means virtual
member function calls won't be bypassed if the return value is an
oversize scalar, but that doesn't happen frequently anyway.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Automatically use delegate_mfp_compatible to generate an adaptor for
member functions that return non-scalar, non-reference types
(partially addresses #8597).
* Enabled the MSVC delegate implemenation for MSVC on AArch64.
* Switched back to neater delegate types for layout item bounds and
colour.
-docs: Updated the example layout links to point to 0.235 - this means
there's now an example of embedded SVG.
|
| | |
|
| |
|
|
| |
function pointers across virtual inheritance relationships using MSVC with /vmg.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimised generation of late bind helper functions. The late bind
helper function doesn't depend on the delegate signature - only on the
late bind base class and function target class. Having it inside the
delegate base class means it needs to be instantiated for every
combination of late bind base class, function target class and delegate
signature. In a typical driver file, there is only one late bind base
class (delegate_late_bind), and there will be delegates with multiple
signatures bound to function members of the same class (e.g. read and
write handlers, possibly of different widths, bound to members of the
driver state class). By moving the late bind helper out of the delegate
base class, the number of required instantiations can be reduced. By
moving the body out of the enclosing class declaration, the compiler can
be encouraged to coalese instantiations across translation units. While
this won't give a further reduction in compile time, it should at least
reduce the output binary size by reducing duplication for devices that
frequently have handlers installed in memory maps.
Added an additional template parameter to delegates allowing the late
bind base class to be changed if desired.
Moved the MSVC implementation "this" pointer optimisation out-of-line
and added logging. Also cleaned up the Itanium "this" pointer
adjustment and code pointer resolution implementation to reduce
duplication and conditional compilation.
Made binding_type_exception give a more meaningful what() message than
"std::exception".
Added extensive validity tests for delegate functionality. Pointers to
member functions are tested, including multiple inheritance, virtual and
non-virtual member functions, and checking for generational loss across
copying/assigning delegates. This should properly exercise "this"
pointer adjustment for the Itanium and MSVC implementations, and vtable
lookup for the Itanium implementation. So-called late binding
functionality is tested, including exceptions on failure. Functoids are
tested, although given the encapsulation it's not possible to check that
an apator isn't generated when it shouldn't be.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fixed this pointer displacement being reapplied after delegates are
copied - caused issues with classes with multiple inheritance.
* Made null member function pointer test conformant with Itanium C++ ABI
specification.
* Corrected size of this pointer displacement - fixes issues on big
Endian targets.
* Fixed function addresses for virtual member functions on targets that
use function descriptors (e.g. PPC64).
* Applied shift to this pointer displacement for targets that use the
ARM variant of the Itanium ABI.
* Fixed this pointer displacement not being applied for virtual member
functions on targets using ARM variant of the Itanium ABI.
* Fixed this pointer displacement being incorrectly applied to vptr on
targets using ARM variant of the Itanium ABI.
* Made less code conditionally compiled to make it easier to catch
errors.
|
| |
|
|
| |
verifying a CHD's block size. [R. Belmont]
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* util/strformat.h: Found a SFINAE trick to detect absence of stream-out
operators. Fixes building with C++20 standard library (#6275).
* util/delegate.h: Fixed a commend and removed an unused declaration
from MSVC member function pointer wrapper.
* util/delegate.h: Added support for discarding functoid return values
for delegates returning void.
* util/delegate.h: Added support for using std::ref to bind non-copyable
functoids.
|
| | |
|
| | |
|
| |
|
|
| |
memory interfaces
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* If a delegate is set to a functoid (e.g. a lambda) with a signature
that is an exact match for the delegate's signature, it will be bound
directly. If arguments or the return value need conversion, a static
adaptor will be generated. This removes unnecessary indirection
through std::function::operator().
-Added a few more documentation comments.
|
| |
|
|
|
|
| |
- Remove opresolv.h from emu.h and some other base headers
- Split legacy floppy image class into a separate file
- Clean up a lot of #includes in src/lib and src/tools/imgtool
|
| | |
|
| |
|
|
| |
existing &= and |= ones.
|
| |
|
|
|
| |
- Fix recently-introduced path-trashing bug in zippath_resolve
- Prevent UI file select menu from crashing in error cases where no files can be found
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The UI controls are described as zoom in/out, but they had the
opposite effect on the palette and tile viewers. That has been
changed to make them consistent with the tilemap viewer.
* Made the default zoom key not act as a toggle. People are familiar
with the function of Ctrl+0/=/- in web browsers, so making them behave
similarly in MAME should make it more approachable. Also added the
default zoom key to the relevant documentation page.
* Implemented the default zoom key for the palette and tile viewers.
* In the tilemap viewer, if the view is in default expand to fit mode,
zoom in/out starting from the actual zoom ratio. Once again, this
behaves more like the zoom controls in a web browser displaying an
image so it should be more intuitive.
* Made more messages from the tilemap viewer localisable.
-util/zippath.cpp: Fixed MT08074.
* There were multiple issues at play here. After #8443 was applied,
is_root was simply never returning true on Windows, as OSD_WINDOWS
isn't actually defined outside libosd and libocore. This caused
phantom parent items to appear in disk roots on Windows, but it meant
that the check in zippath_resolve would always fail so the trailing
backslash would be trimmed. Fixing the macro test in is_root meant
the trailing backslash from C:\ would no longer be trimmed, which
caused the stat in zippath_resolve to fail.
-bigbord2.cpp: Hooked up floppy DRQ that had somehow got lost.
-Reduced tag map lookups in several drivers and devices.
-util/coretmpl.h: Removed an overload of bitswap that can be avoided
using if constexpr.
-Added doxygen comments to some classes, and fixed several doxygen
warnings.
-util, osd: Test for _WIN32 rather than WIN32.
* In C++17 mode, WIN32 is no longer a predefined macro, although various
things in 3rdparty define it to maintain legacy support. We're better
off moving forward anyway for when WIN32 disappears entirely. (WIN32
is not a reserved name, while _WIN32 is, starting with an underscore
follwed by an uppercase letter.)
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* play_1.cpp: Use output finders.
* s3.cpp, s4.cpp, s6.cpp, s6a.cpp: Use output finders, reduced tag
lookups.
* taito_z.cpp: Use output finders, split up state class a little.
* util/unzip.cpp: Use std::optional to make code clearer.
* util/ioprocsfilter.cpp: Work around MSVC DevCom-1516410.
|
| |\
| |
| |
| | |
MAME 0.235
|
| | |
| |
| |
| | |
OSD_* macros must not be used outside libocore/libosd.
|
| |/
|
|
|
|
|
|
|
| |
Added more modern generic I/O interfaces with implementation backed by stdio, osd_file and core_file, replacing io_generic. Also replaced core_file's build-in zlib compression with a filter.
unzip.cpp, un7z.cpp: Added option to supply abstract I/O interface rather than filename.
Converted osd_file, core_file, archive_file, chd_file and device_image_interface to use std::error_condition rather than their own error enums.
Allow mounting TI-99 RPK from inside archives.
|
| | |
|
| | |
|