path: root/src/frontend/mame (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ui/state.cpp: Use path concatenation utility function. Vas Crabb4 days1-8/+4
* ui/selgame.cpp: Fixed display of software favourites. Vas Crabb2022-10-301-5/+5
* luaengine_input.cpp: Fixed input device items upper bound. (#10465) goldnchild2022-10-231-1/+1
* ui: Added support for shows localised system name in Favorites. (#10455) k2-git2022-10-221-2/+3
* Modernize core_strwildcmp() and core_iswildstr() (#10344) npwoods2022-10-162-9/+9
| | | | | | | * Modernize core_strwildcmp() and core_iswildstr() - Changed parameters from 'const char *' to 'std::string_view' - Removed 16-character limit in core_strwildcmp()
* pluginopts.cpp: Use path_concat utility function AJR2022-10-041-3/+4
* armchamp/armchmp2: match not-working and mechanical flags: hap2022-10-041-1/+1
| | | | | | armchamp has preliminary arm input/motor emulation like armchmp2 making it borderline playable, and armchmp2 has a mechanical arm like armchamp ui/info: reword mechanical "cannot be emulated" to "cannot be emulated accurately" as often times we do crudely emulate mechanical elements
* Move UTF8_xxx string literal macros to new header in lib/util AJR2022-09-254-0/+8
* corefile.h: Move filename utilities to path.h AJR2022-09-259-2/+15
* util/corestr.cpp: Changed core_stricmp to take std::string_view parameters. ↵ npwoods2022-09-155-12/+12
| | | | | (#10287) Note that the implementation is still not UTF-8 aware.
* Patched up some gaps in functionality and fixed some bugs. Vas Crabb2022-09-0218-383/+783
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui: Added some missing functionality: * Added an option to copy input device IDs to the relevant menus. * Added an item for setting the software lists files path (-hashpath) to the folder setup menu. * Allow pasting text from clipboard in most places that allow typing (searching, entering filenames, entering barcodes). * Changed the software selection menu heading to be a bit less misleading. * Made barcode menu less eager to rebuild itself unnecessarily, and removed some confusing and apparently pointless code. Exposed more Lua bindings: * Added low-level palette objects. * Added indexed bitmap types. * Added a bitmap method for extracting pixels from a rectangular area as a packed binary string. * Changed screen device pixels method to return width and height in addition to the pixels. osd: Added some functionality and cleaned up a little: * Added a function for copying text to the clipboard. * Moved function for converting Windows error codes to standard error conditions to winutil.cpp so it can be used from more places. * Removed duplicate declaration of osd_get_clipboard_text and made the function noexcept (including fixing implementations). * Made macOS implementation of osd_get_clipboard_text skip the encoding conversion if it finds UTF-8 text first. * Changed the default -uimodekey setting so it doesn't lose the "not shift" that stops the default from interfering with UI paste. Various bug fixes: * util/unicode.cpp: Fixed the version of utf8_from_uchar that returns std::string blowing up on invalid codepoints. * util/bitmap.h: Fixed wrapping constructors for indexed bitmaps taking the wrong parameter type (nothing was using them before). * util/bitmap.cpp: Fixed potential use-after-free issues with bitmap palettes. * emu/input.cpp, emu/inputdev.cpp: Log 1-based device numbers, matching what's shown in the internal UI and used in tokens in CFG files. * emu/emumem.cpp: Added the bank tag to a fatal error message where it was missing. docs: Reworked and expanded documentation on configuring stable controller IDs. For translators, the changes are quite minor: * There's a menu item for copying a device ID to the clipboard, and associated success/failure messages. * There's the menu item for setting the software list file search path. * One of the lines in the software selection menu heading has changes as it could be interpreted as implying it showed a software list name.
* OSD/network interface cleanup AJR2022-08-282-0/+2
| | | | | | | - Move osd_midi_device from osdcore.h to osdepend.h - Move osd_list_network_adapters from osdcore.h to osdnet.h (was already defineduniquely in osdnet.cpp) - Move #include <cstdarg> from osdcore.h to emu.h - Remove dinetwork.h from emu.h
* inifile.cpp, miscmenu.cpp: Use std::collate for filename sorting AJR2022-08-272-5/+34
* Use util::streqlower in more places AJR2022-08-271-2/+3
* Lua scripting enhancements: Vas Crabb2022-08-232-10/+363
| | | | | | | | | | | | Added minimal support for manipulating bitmaps and drawing them in render containers. Y'CbCr 4:2:2, RGB and ARGB are supported. Argument order doesn't always match the underlying classes to make the Lua interface more consistent with render bounds and render containers. Added bindings for device_palette_interface. Fixed some errors in the documentation as well as documenting new functionality.
* emu/validity.cpp, ui/info.cpp: Base "no sound" check on speaker devices. Vas Crabb2022-08-201-1/+2
| | | | | | | | | Currently the speaker device is the only way sound can get to the OSD layer, so its presence or absence determines whether the emulated system is capabale of producing sound. A few systems use chips with sound capability for other purposes (typically I/O or video) while leaving the sound outputs disconnected. These systems should display the notice about the absence of sound output.
* frontend: Swallow save state slot key/button. Vas Crabb2022-08-182-21/+44
* ui/icorender.cpp: Revert initialisations that can hide real bugs. Vas Crabb2022-08-031-3/+3
| | | | | | | | | | | | | | | | | | MSVC isn't smart enough to detect that these can only be used after being assigned while clang and GCC can work it out fine. Initialising them to zero at declaration has the potential to mask real bugs if some code path tries to use them without assigning them. Code flow analysis (e.g. Coverity) or memory analysers (e.g. valgrind or Purify) won't pick up on the buggy path because the variable will technically be initialised. MSVC is problematic when it comes to warnings about uninitialised variables in general. Unfortunately MSVC has no option to selectively treat warnings as errors, unlike clang/GCC which have -Wno-error= which we use extensively. Until Microsoft addresses these issues, you'll have to use NOWERROR=1 when building with MSVC. Also, some cleanup.
* cpu16h, icorender.cpp: fix MSVC compile (nw) Peter Ferrie2022-08-011-3/+3
* ui/selgame.cpp, ui/selsoft.cpp: Clear up std::vector asserts triggered when ↵ jflatt2022-07-162-2/+2
| | | | menu items is empty. (#10085)
* Added make opions for filter file, adjusted source path display. Vas Crabb2022-06-285-14/+56
| | | | | | | | | | | | | | Added SOURCEFILTER option to specify a driver filter file in your make options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or put it in your useroptions.mak if you'll be using it a lot). It functions more-or-less like SOURCES on steroids. Changed the way system/device source file paths are displayed to suit the new source layout better. INI file loading hasn't changed, that still just uses the base file name. Added overlooked trigger to src/bus.lua to include NES controller bus if the NES zapper sensor is needed.
* -Updated translations, cleaned up a little. Vas Crabb2022-06-262-0/+7
| | | | | | | | * Updated Ukrainian translation. [Stanley Kid] * Updated Czech and Slovak translations. [Milan Galcik] -bus/nubus: Started identifying JMFB registers required for supporting interlaced modes.
* ui/selgame.cpp: Avoid assert in std::vector when no items in menu. (#9978) jflatt2022-06-251-1/+1
* Optimisation, and baby steps towards untangling stuff: Vas Crabb2022-06-161-2/+2
| | | | | | | | | | Optimised the scheduler's handling of unscheduled timers - gives a 50% performance improvement in some timer-heavy drivers. Added better endianness swizzling helpers. Got rid of some of the OSD input modules' dependence on concrete input classes from emu.
* osdcore.h: Changed osd_subst_env to accept a std::string_view and return a ↵ npwoods2022-06-153-14/+5
| | | | std::string. (#9928)
* -Got rid of some legacy MESS support glue. Vas Crabb2022-06-132-5/+6
| | | | | | | | | | | * Got rid of the special-casing for the "mess" subtarget name. * Got rid of the MESS-specific Windows resources, emuator info source and man page. * Added subtarget name to the internal name and original name in Windows resources. -ui: Put the system-specific items on the input settings menu together, and fixed the crosshair visibility settings.
* ui, docs: Added menus to fill a couple of gaps, improved consistency. (#9915) Vas Crabb2022-06-1148-842/+1413
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added menus for controlling toggle inputs, and showing recognised input devices and control state. Moved input menu options off main menu to a submenu, as there are a lot of them now. Moved menu heading drawing into base class, added headings to more menus, and made headings more consistent with the menu items used to reach them. Also made terminology more consistent. Changed the default names for buttons and hat switches/D-pads to use 1-based numbering. DirectInput still returns 0-based button numbers for some devices. Removed local copy of MinGW xaudio2.h as it’s now included in the MSYS2 package. Also fixed building the DirectSound sound output module with the SDL OSD on Windows - the Windows headers are sensitive to include order. Started adding documentation for menus, to hopefully help people find menus they remember seeing but can't recall how to access. For translators, this makes terminology more consistent. In particular: * "Settings" is preferred over "configuration" in a number of places, as the latter can be construed as referring specifically to settings stored in .cfg files in the cfg_directory folder. Also, references to saving machine configuration could be interpreted as relating to the settings on the "Machine Configuration" menu. * The controls on host input devices (e.g. keys, buttons, joystick axes) are referred to as "controls", while emulated inputs are referred to as "inputs". * The menus for assigning host controls to emulated inputs are called "input assignments" menus to distinguish them from other input settings menus. * Combinations of controls that can be assigned to emulated inputs are referred to as "combinations" rather than "sequences". * The potentially confusing term "ROM set" has been removed altogether. Use "short name" to refer to a device or system's identifier. * "System" is used in almost places to refer to a complete, runnable system rather than "Machine". * "Driver" is now only used to refer to source files where systems or devices are defined - it is no longer used to refer to individual systems. * A few more menus have message context for the messages. This makes it a bit easier to guess where the messages are used. It also means you can use different translations in different places if necessary (e.g. if the same English text should be translated differently as an item in one menu and as a heading in another).
* frontend/mame/infoxml.cpp: Work around an MSVCPRT shortcoming with promise ↵ Vas Crabb2022-06-061-0/+6
| | | | types (see e.g. GitHub #9665).
* util/options.h: Removed legacy OPTION_* option type constants. (#9851) npwoods2022-05-305-101/+101
| | | These constants were polluting the global namespace.
* ui/ui.cpp: Use unordered map for session data, to tempt fate with toolchain ↵ Vas Crabb2022-05-241-2/+2
| | | | bugs.
* ui/viewgfx.cpp: Fixed some cases where no tiles would appear with tall or ↵ Vas Crabb2022-05-211-3/+11
| | | | wide aspect ratio windows.
* ui/viewgfx.cpp: Remember orientation/position/scale per tilemap; more ↵ Vas Crabb2022-05-211-190/+248
| | | | encapsulation.
* ui/viewgfx.cpp: Added ability to restrict tiles to integer scale factors. ↵ Vas Crabb2022-05-203-973/+981
| | | | | (#9783) Also encapsulated things a bit more and made the UI manager hold onto the storage rather than keeping it in file statics.
* srcclean in preparation for 0.243 Vas Crabb2022-04-242-3/+3
* File handling cleanup AJR2022-04-191-18/+12
| | | | | | | | | | - Remove fgetc, fgets and ptr methods from device_image_interface. - Remove the core_file::buffer method to read an entire file into memory and rewrite emu_file::hashes to not depend on it. - Make core_in_memory_file a final class; now that buffering is gone, core_osd_file no longer subclasses it but a new superclass that retains some common methods. - Rename the offset and length methods used internally in core_file implementations to index and size due to frequent clashes with parameter names. - Convert comments in util/corefile.cpp to C++ style. - Add a new overload of the hash_collection::compute method which hashes data from a random_read stream, reading it into memory one chunk at a time. As a result, the hash_collection::begin and hash_collection::end methods have been removed as obsolete (similar methods are now used internally only). - Enhance error messages for the frontend media identifier when it encounters file errors.
* Consolidated floppy_image_device::m_create_fs and ↵ npwoods2022-04-114-11/+37
| | | | | | | | | floppy_image_device::m_io_fs vectors (#9542) * Consolidated floppy_image_device::m_create_fs and floppy_image_device::m_io_fs vectors We had two separate members in floppy_image_device (m_create_fs and m_io_fs) that contained the same data. Whether the file systems can be formatted or read can be identified by querying fs::manager_t. For this reason, it seems bad to have these separate members, the seemingly only reason to make the UI code slightly less complicated. For this reason I consolidated these two members and moved the burden of selecting which ones are creatable to the UI code.
* Added an 'image_display_enabled' property to mame_ui_manager and exposed it ↵ npwoods2022-04-073-1/+6
| | | | to LUA. This property allows one to disable image-specific UI displays (#9377)
* ui/datmenu.cpp: Respect clicks on headings (GitHub #9522). Vas Crabb2022-04-071-1/+1
* Disable lifetime dead store elimination for Linux GCC builds. Vas Crabb2022-04-031-1/+1
| | | | | | This will hopefully work around the very unhelpful uninitialised variable warning that seems to be triggered by using Sol's get function with std::optional<T> or sol::optional<T> on Linux.
* Try to work around the uninitialised member warning in sol::optional. Vas Crabb2022-04-033-37/+36
* -util/corealloc.h: Reduced make_unique_clear to a single variant for POD arrays. Vas Crabb2022-04-031-0/+10
| | | | | | | | | | | | | | | | | | * Enabled GCC lifetime dead store elimination optimisation. * emu/device.h: Don't pre-clear memory for drivers. Ivan Vangelista fixed at least the majority of things that crashed outright, and Robbbert initialised variables that coverity complained about. It's unlikely anything will break due to this. * sound/discrete.h: Explicitly initialise members of discrete "devices" to zero. I don't see a way around doing this in headers due to the macro soup used to build the constructors. * sound/mos6581.cpp: Moved creation of the SID core to device_start and explictly initialised members of the SID core structures. These structures are in internal headers, so they won't cause downstream recompiles. -Lua engine: Made I/O port manager type_seq a bit more tolerant of omitted arguments.
* floppy: remove the intermediate allocator Olivier Galibert2022-03-304-11/+11
* Lua engine improvements (#9453) Vas Crabb2022-03-237-321/+396
| | | | | | | | | | | | | | | | | | | | | | Made auto-boot script errors and plugin bootstrap errors fatal. Run auto-boot scripts in a sandbox. Globals can be accessed, but not set. The sandbox is cleared on hard reset, but not on soft reset. Added (hopefully) useful to string metafunctions to device_t and address space that show short names and tags. Fixed issues in plugins that surface when strict type checking is enabled, as this means numbers and nil are not automatically converted to strings. Plugins should be tested with debug builds to check for this. Made save item read_block raise an error on invalid arguments rather than returning an empty string, and made it use luaL_buffer directly rather than using the helper wrapper. Changed some more function bindings to use set_function to avoid issues related to ThePhD/sol2#608, and got rid of some unnecessary lambda captures.
* Lua engine: Enable checks for debug builds, kill sol::buffer. (#9419) Vas Crabb2022-03-173-63/+115
* Fixed some debugger memory view annoyances and cleaned up Lua bindings. Vas Crabb2022-03-163-89/+94
| | | | | | | | | | | | Made the debugger memory view not depend on isprint which is affected by the global locale. Assume the OSD will display as ISO-8869-1 and replace problematic printable characters. Started changing Lua function bindings to use set_function to avoid potential issues related to ThePhD/sol2#608, and worked out what was causing problems with symbol table read_memory/write_memory. (They aren't really essential - you can do the same thing with the address space object itself, but they're easier to parameterise.)
* emu/devcb.h: Cleaned up a little using C++17 type traits helpers. Vas Crabb2022-02-281-6/+10
| | | | | Also made Lua I/O port field sensitivity nil for digital fields and put in some more const.
* Lua engine: Make setting analog I/O port field values user-friendly. (#9322) feos2022-02-281-0/+11
| | | | | Exposed minimum/maximum values for analog fields. together with defvalue, they can be used to check range of values and neutral position. Previously you had to send a normalised value between -65535 and 65535 which would be scaled depending on machine specifics. You could read the scaled value from the port, but you couldn't send scaled values in. This allows scripts to set scaled values as seen by the machine.
* fileio.cpp: Remove optional second argument of path_iterator::next AJR2022-02-172-4/+7
* vegas.cpp: Cleanup: Vas Crabb2022-02-131-33/+48
| | | | | | | * Combine DUART interrupts. * Disabled SIO logging that had been left on. * Added system LED output and added it to sf0249 layout (hidden by default).
* Remove fileio.h from emu.h AJR2022-02-1120-0/+21