summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
Commit message (Collapse)AuthorAgeFilesLines
* Removed extra semicolons after function bodies in remaining headers. (#9277) 0kmg2022-02-071-3/+3
|
* abc1600: Added sector dump floppy image format. [Curt Coder] Curt Coder2022-02-072-0/+114
|
* flac.cpp: Add some missing standard headers AJR2022-02-061-1/+3
|
* Treat WinImage compressed disk images (*.imz) as ZIP archives. [Justin Kerk] Justin Kerk2022-02-051-1/+1
|
* Drop unnecessary executable permissions (#9257) Julian Sikorski2022-02-0315-0/+0
|
* Fix building with gcc-12 (#9204) Julian Sikorski2022-01-241-0/+1
|
* srcclean in preparation for 0.240 Vas Crabb2022-01-236-126/+126
|
* docs: List MSYS2 packages required to build PDF documentation on Windows now ↵ Vas Crabb2022-01-122-9/+9
| | | | that TeX Live is available.
* Created an initial file system implementation for OS-9 under the CoCo (#9096) npwoods2022-01-077-18/+733
| | | | | | | | * Created an initial file system implementation for OS-9 under the CoCo * Minor fixes to directory entry handling * Changed to use fsblk_t::r[8|16|24|32]b() - Changed the above functions to be const
* -Significant updates to the CD-i driver [Ryan Holtz] (#9102) MooglyGuy2022-01-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | -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.
* Minor typo fix in a comment (nw) (#9082) npwoods2022-01-031-1/+1
|
* Reimplemented support for the CoCo's RS-DOS filesystem on top of the "fsmgr" ↵ npwoods2022-01-037-0/+518
| | | | | | | | | | | | framework (currently read only) (#9080) * Reimplemented support for the CoCo's RS-DOS filesystem on top of the "fsmgr" framework (currently read only) * Added support for file_type and ascii_flag metadata, minor bug fix decoding file allocation table entries * Creating a "CoCo Raw Disk" format and changing the CoCo RS-DOS filesystem to use it * 1. Adding COCO_RAWDSK to all.cpp 2. Fixing sector order on CoCo raw disk
* Move filesystem library into separate namespace and use shorter uX type ↵ AJR2021-12-3116-778/+836
| | | | names there
* Filesystem code cleanup AJR2021-12-1415-425/+453
| | | | | | | - Eliminate dependencies on emu.h, replacing most fatalerror calls and floptool's ersatz emu_fatalerror class with standard exception classes - Use range-based std::string constructors in some methods - Move filesystem metadata handling to a separate source file - Eliminate src/emu as an include path for libformats (necessitates kludge in ti99_dsk.cpp)
* Remove a few outdated references to MESS Dirk Best2021-12-024-7/+7
|
* More cleanup. Vas Crabb2021-12-021-5/+3
|
* Fixed a few coverity errors, several of which are real bugs. Vas Crabb2021-12-021-1/+1
|
* Soul-crushingly frustrating clean-up: Vas Crabb2021-12-011-19/+14
| | | | | | * Patched up a pile of code that was rotting behind UNUSED_FUNCTION, and switched to [[maybe_unused]] attribute so it can't rot so easily. * Reduced a bit more redundancy in fruit machine layouts.
* srcclean in preparation for release of MAME 0.238. Vas Crabb2021-11-211-1/+1
| | | | | | | Patched up positron.cpp input ports - you shouldn’t use PORT_NAME when the key cap label is just the characters it produces anyway, and you’re supposed to use the actual character a key produces for PORT_CHAR or "natural" keyboard mode/paste will be unnatural.
* acorn_dsk.cpp: Fixed cell size for high density ADFS-F format. Nigel Barnes2021-11-141-3/+3
|
* Actually commit the source changes for ASIO 1.20.0 update. Vas Crabb2021-11-151-5/+5
| | | | | Also changed the fix to ASIO itself to match the upstream change in commit cd68912b7eb07f24e501e8cbff832b61ec292eea.
* fixes for variables set but not used smf-2021-11-074-7/+5
|
* -frontend: Refactored menu event handling and fixed a number of issues. (#8777) Vas Crabb2021-10-312-0/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* unicode.cpp: Fix build on non-WIN32 systems AJR2021-10-081-1/+1
|
* util/unicode.cpp: string_view treatment for the last two holdouts. Vas Crabb2021-10-092-6/+6
|
* Overdue internal UI enhancements (#8674) Vas Crabb2021-10-091-1/+0
| | | | | | | | | | | | | | | | * 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.
* ioprocsfilter.h: Add missing #include AJR2021-10-061-0/+1
|
* util/zippath.cpp: Fixed two issues affecting Windows: Vas Crabb2021-10-061-6/+9
| | | | | * Browsing from a location inside an archive causes MAME to hang. * Files inside archives are not listed.
* util/zippath.cpp: Made behaviour of trying to open things inside archives a ↵ Vas Crabb2021-10-061-12/+24
| | | | bit more consistent, fixed another bug with root paths.
* More low-effort cleanup. Vas Crabb2021-10-051-15/+1
| | | | | | | | * 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.
* util: Further API cleanups: (#8661) Vas Crabb2021-10-0527-952/+2419
| | | | | * 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.
* bus/rs232: Added a configurable patch box device, and various cleanups. Vas Crabb2021-10-031-1/+1
| | | | | | | | | | 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.
* -ui: Work around GitHub issue #8634. Vas Crabb2021-10-011-0/+9
| | | | -util/delegate.cpp: Detect clang x86-64 thunk for first vtable entry.
* -minimaws: Changed geometry of disclosure triangles. Vas Crabb2021-09-291-1/+1
| | | | -util/delegate.cpp: Fixed typo in comment.
* util/delegate.cpp: Notes from experiments with clang. Vas Crabb2021-09-271-25/+104
|
* srcclean in preparation for MAME 0.235, and two small adjustments. Vas Crabb2021-09-262-56/+56
| | | | | | | * Reduce repeated directory walking in cleansrc target (substantially improves speed of building the target on Windows). * Disable a validity check using an MSVC language extension when using clang in MSVC ABI mode.
* util/delegate.h: Use "compatible" delegates for MinGW GCC i686. Vas Crabb2021-09-241-3/+4
| | | | | | | | | | | | 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.
* util/delegate.cpp: PowerPC-64 Little Endian drops function descriptors. Vas Crabb2021-09-241-1/+3
| | | | | | 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.
* -minimaws: Made table sort widgets (and the code behind them) less ugly. Vas Crabb2021-09-231-0/+11
| | | | -util/delegate.cpp: Added a couple of comments about assumptions.
* added tzx to the sc-3000 formats (#8592) Fabio DL2021-09-211-0/+2
|
* util/delegate.cpp: Recognise a couple more MSVC thunks. Vas Crabb2021-09-221-6/+29
| | | | | | | | 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.
* util/delegate.h: Make comparison operators more technically correct. Vas Crabb2021-09-221-3/+32
| | | | | | | | | | | | 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.
* cpu/drcbex64.cpp: Proof-of-concept for optimisation of calling out. Vas Crabb2021-09-222-6/+43
| | | | | | | | | | | | | | | | 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.
* -delegates: Fixed structure return with MSVC C++ ABI. Vas Crabb2021-09-211-26/+101
| | | | | | | | | | | | * 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.
* Fix compile on GCC x64 Linux [R. Belmont] arbee2021-09-191-1/+1
|
* util/delegate.cpp: Fixed calculation of this pointer when casting member ↵ Vas Crabb2021-09-201-1/+2
| | | | function pointers across virtual inheritance relationships using MSVC with /vmg.
* util/delegate.h: Try to catch issues earlier, and some cleanup. Vas Crabb2021-09-202-136/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* util/delegate.cpp: Fixed multiple issues. Vas Crabb2021-09-192-130/+277
| | | | | | | | | | | | | | | | | | | * 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.
* harddisk.cpp: Allow specifying the desired block size for loose files / ↵ arbee2021-09-182-7/+47
| | | | verifying a CHD's block size. [R. Belmont]
* util/strformat.h: Detect C++ standard > C++17 before doing weird stuff. Vas Crabb2021-09-182-11/+16
|