summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src/osd
Commit message (Collapse)AuthorAgeFilesLines
* Debugger updates: Vas Crabb2022-09-201-9/+9
| | | | | | | | | | | | | | | | | | | | | | | Made closing the Qt debugger console window hide all debugger windows and run the emulated machine (debugger windows will be shown on next user break or breakpoint hit). This matches the behaviour of the Win32 and Cocoa debuggers. Made Qt debugger clean up its windows on exit rather than on subsequent starts. This fixes GitHub #9789. Made Qt debugger less reliant on global variables, and made code to save and load configuration a bit less convoluted. It still needs more refactoring on this front, but it's in slightly better shape now. Made Qt debugger a bit less crashy on invalid configuration. Still plenty of ways to crash it, but every little bit counts. Made Qt debugger do less comparisons on menu item names and object names - it might be possible to localise one day. Moved all the C++ debugger implementations into namespaces. They're using awfully generic class names, so it's about time.
* debugger/win: Added capability to save/restore window arrangement. Vas Crabb2022-09-161-0/+2
| | | | | | | | | * Format is mostly compatible with the Cocoa debugger, besides reversed vertical positioning. * Made Qt debugger more compatible with configuration format used by Win32 and Cocoa debuggers. * emu/config.cpp: Preserve elements with no registered handlers in default and system configuation files.
* Patched up some gaps in functionality and fixed some bugs. Vas Crabb2022-09-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Optimisation, and baby steps towards untangling stuff: Vas Crabb2022-06-161-0/+5
| | | | | | | | | | 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.
* osd: Cleaned up Windows API usage a little. Vas Crabb2022-05-262-3/+5
| | | | | | | | | * Bumped target windows version to 6.0.0 (Vista). * Use WRL COM pointers to manage some COM-like objects. * Cleaned up logging in DirectSound module. * Cleaned up includes in Windows input modules. * Switched to Common Item Dialogs in Windows debugger. * Replaced disabled code that never really worked with a TODO comment.
* clang fixes smf-2021-11-191-0/+6
|
* Remove OSD_UWP from rest of code Miodrag Milanovic2021-10-262-7/+0
|
* Remove uwp specific sources Miodrag Milanovic2021-10-261-1/+0
|
* Remove uwp from build system Miodrag Milanovic2021-10-262-142/+0
|
* Add new files to SDL OSD as well as Mac OSD. Vas Crabb2021-10-181-0/+2
|
* Still more user experience improvements: Vas Crabb2021-10-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Changed the default mapping for UI select to not trigger on Alt+Enter fullscreen toggle. (Fullscreen toggle still doesn't work in menus - actually fixing that is complicated.) frontend: Made the about box wrap text properly, made the title and backtrack menu item always visible, and added a footer with the VCS revision. frontend: Don't highlight the favourites and info toolbar buttons if there's no selection (can happen if filters produce no results). Also made the info viewer appear even if no info is available - it's less confusing to see an empty menu than wonder why clicking the button does nothing. debugger: Added a register points view to the GUI debuggers, to go with the breakpoints and watchpoints views. debugger: Extended [brw]p(clear|(en|dis)able) commands to accept multiple arguments to perform the same action on multiple (break|watch|register)points at once. Also made rplist accept a CPU for showing a single CPU's register points ([bw]plist already support this). docs: Updated registerpoints debugger commands page, and updated other pages for latest extensions to syntax.
* fixed vs2019, broken by clang fix. smf-2021-09-091-3/+5
|
* fixes for building with clang 12.0.1 on windows smf-2021-09-041-0/+4
|
* formats, osd, util: Started refactoring file I/O stuff. (#8456) Vas Crabb2021-08-222-2/+0
| | | | | | | | | 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.
* Compile bgfx Miodrag Milanovic2021-08-101-1/+0
|
* Slightly cleaned up OSD input modules. Vas Crabb2021-07-291-34/+2
| | | | | | | | | | Removed support for DirectInput 7 and earlier. It hasn't been tested in years, and it's not relevant on any supported OS. DirectInput is effectively finalised at version 8, and is unlikely to get an API update in the future. Use more string[_view] and fewer C strings, and tightened up scope of a few things.
* Added helpers for 64-bit count leading zeroes/ones. Vas Crabb2021-06-131-0/+1
|
* fix pcap builds (#8150) [xray-sky, R. Stricklin] xray-sky2021-06-063-3/+3
|
* sound: Pulseaudio support Olivier Galibert2021-04-161-0/+29
|
* Low-level #include overhaul AJR2021-01-023-0/+3
| | | | | | | - vecstream.h: Revert changes made in aa29519528cb3dbdbfac56819bea670ed8c56c5d. The std::string_view conversion has been made a non-member function (util::buf_to_string_view) and moved to coretmpl.h. - strformat.h: Remove the using declaration importing util::string_format into the global namespace. It has been moved to emucore.h and a few tool sources; other references have been qualified. - osdcore.h: Split out file, directory and path classes and methods to a new header (osdfile.h), Doxygenizing the documentation comments. - Disaggregate many #includes that were including other standard or custom headers. emu.h now includes basically the same things that it did, but other headers have been streamlined; for instance, emucore.h no longer stealth-includes osdcore.h several ways.
* Add AudioToolbox framework when building SDL2 on macOS, fixes TOOLS=1 link ↵ arbee2020-12-131-0/+1
| | | | errors [R. Belmont]
* -bgfx: Corrected a data overrun in the d3d12 backend from allocating only ↵ Ryan Holtz2020-06-201-0/+38
| | | | enough texture data for width*height, not rowpixels*height. [Ryan Holtz]
* Removed winpcap and cleaned up network module selection. Vas Crabb2020-03-056-17/+66
| | | | | | | | (nw) The pcap.h header itself has the problematic original BSD license, including the obnoxious advertising clause. Using tap/tun networking on Windows provides a much better experience, so the extra setup is worth it. This patch also allows you to enable pcap on platforms where it's disabled by default with USE_PCAP=1 if you really want to use it.
* Odroid n2 build fixes (#5751) Julian Sikorski2019-10-181-0/+6
| | | | | | | | | | | | * Allow specifying NO_OPENGL manually * Switch bgfx to OpenGL ES renderer if NO_X11 is specified * Only link against EGL when NO_X11 is specified on linux, netbsd and openbsd * Only switch bgfx to OpenGL ES on linux, netbsd and openbsd * Indentation fix
* Add include folder 3rdparty/bgfx/3rdparty/khronos too (nw) yz70s2019-10-131-0/+1
|
* srcclean (nw) Vas Crabb2019-09-222-2/+2
|
* Preliminary Mac native OSD. Not working yet. [R. Belmont] arbee2019-09-153-0/+208
| | | | | | | | This will compile, link, and run a driver all the way to the first info screen, provided you use -video bgfx. However, although there's a valid NSWindow created, it never actually appears on screen for unknown (but likely silly) reasons. Inputs are not implemented and fullscreen exists but is untried.
* asmjs: avoid explicitly linking SDL2_ttf. 68bit2019-08-281-1/+1
| | | | | | It appears that it is sufficient to include `-s USE_SDL_TTF=2`, and emcc links in the SDL2_tff library, and it does not like attempts to link this twice.
* asmjs: can not ignore errors on missing libraries 68bit2019-08-281-1/+1
| | | | | | | | | | The current Emscripten release is not happy with the use of "-s ERROR_ON_MISSING_LIBRARIES=0" as a link option, it gives an error stating that all libraries must now be present, so remove that use. This leaves a missing 'util' library. This did not appear to be needed on the few builds I have tried, and this patch avoids adding this library for asmjs.
* gdbstub: added new GDB stub debugger (#5456) Ramiro Polla2019-08-111-0/+1
| | | | | | | | | | | | * gdbstub: added new GDB stub debugger This debugger can be used to connect to an external debugger that communicates using the GDB Remote Serial Protocol, such as GDB itself or many other GDB frontends. Currently i386 (ct486), arm7 (gba), and ppc (pmac6100) are supported. * gdbstub: enable GDB stub debugger in mac and windows builds
* fix vsllvm configuration feos2019-06-031-0/+1
| | | | | | - dxsdk was missing from includes - winmm was missing from libs - narrowing warning was silenced for VS, but not from vsllvm, where it leads to an error in menu_video_options::handle()
* Disable WII Lightgun hack by default (#5056) Kiall Mac Innes2019-05-142-0/+23
|
* Enable Xinput by default Kiall Mac Innes2019-04-211-1/+5
| | | | | | | On Linux, enable Xinput support by default. The Xinput lightgun driver is the only reliable+accurate method to use lightguns on Linux, we should enable this by default to reduce the friction for Linux Lightgun users. This should have no effect on users of Windows/Mac etc.
* (nw) Clean up the mess on master Vas Crabb2019-03-262-10/+11
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-252-11/+10
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* further quieting of MS-LLVM (nw) Peter Ferrie2019-02-251-0/+1
|
* (nw) misc stuff: Vas Crabb2019-02-181-8/+8
| | | | | | * Document cross-compilation options * Use lowercase for some libraries that are lowercase in system32 on Windows anyway * Make USE_BUNDLED_LIB_SDL2=0 not use the bundled SDL
* attempt to fix testkeys linking in more configurations (nw) Vas Crabb2019-02-181-1/+1
|
* Fix cross compile mame/sdl/windows. (nw) couriersud2019-02-171-1/+1
|
* additional documentation on compiling MAME (nw) Vas Crabb2019-01-011-1/+1
|
* taptun: add support for Windows (#3790) Patrick Mackinlay2018-07-301-0/+1
| | | | | | | | | | | | | | | | | | | * taptun: add support for Windows Looking for feedback only at this point, because it's the first time I've attempted any OSD stuff - be gentle. This extends the existing taptun OSD module to support Windows through the TAP-Windows6 driver (https://github.com/OpenVPN/tap-windows6). * TAP-Windows6 is GPLv2, however only the header file is required in MAME, and the driver itself is entirely optional. * I've tried to minimise the size of the diff, rather than completely separate the Windows/non-Windows implementations - not sure which is preferable in this case. * The license file has Mac(?) line-endings - unsure if they should be normalized or used verbatim. * Uncertain about the non-Windows case (or the Windows SDL case) - existing code uses __linux__, but I'm not clear on how that works with OSX, for example? * I can't claim this actually "works" yet, because I don't know enough to configure the tap end of it properly to get networking doing something useful, but I will get there and correct anything necessary in a subsequent real PR. * minor fixes/improvements (nw) * Use Unicode Windows APIs, and UTF-8 for MAME * Deal with unterminated registry string values * Cancel any pending I/O in destructor
* Discord plugin try 2 (#3640) cracyc2018-06-081-0/+1
| | | | | | | | | | | * plugins/discord: discord presence plugin [Carl] * plugins/discord: use domain sockets and pipes [Carl] * winptty: fix connecting to existing socket (nw) plugins/discord: show pause state (nw) * plugins/discord: fix pause behavior (nw)
* Enable use of system-wide asio, glm and rapidjson (#3172) Julian Sikorski2018-02-081-2/+2
| | | | | | | | | | | | * Fixed building using system utf8proc * Fixed building using system portaudio * Allow using system-wide asio headers (1.11.0 or higher required). * Allow using system-wide glm headers * Allow using system-wide rapidjson headers
* -bgfx: Abstracted some view-related functions into bgfx_view class, nw mooglyguy2018-01-131-0/+1
|
* remove qtmain on windows, it conflicts with SDL2_Main (nw) smf-2017-12-261-1/+0
|
* added -lSDL2main to fix linking with gcc 7 [smf] smf-2017-12-261-1/+2
|
* Attempted to sanitize/rationalize how we access UTF-8 command line arguments ↵ npwoods2017-09-184-14/+1
| | | | | | | | | | | (#2532) Specifically, this creates a call osd_get_command_line() that returns UTF-8 command line arguments as std::vector<std::string>. On non-Windows platforms, this does nothing more than build the vector. On Windows, this invokes GetCommandLineW() and CommandLineToArgvW(). This also attempts to unwind usage of wmain()/_tmain() on Windows, which is not standard. Related to this, this fixes a bug in Imgtool; specifically, non-7 bit ASCII was not being handled correctly in Windows. This is really an admission that the way that Windows handles Unicode and command line arguments sucks, and it is my belief that having a wmain() or _tmain() declaration specific for Windows is a worse solution. C'est la vie. I'm very open to the idea that src/osd/osdcore.[cpp|h] is not the best place to do this. Let me know if I should move it.
* In the windows debugger log window add a Log/Clear menu to remove all logged ↵ yz70s2017-07-301-0/+2
| | | | messages (nw)
* Fix include path with USE_LIBSDL on macOS Joshua Root2017-07-221-1/+1
| | | The cflags will contain an include path ending in "SDL2", not just "SDL", and removing just the latter leaves a stray "2" on the end.
* Lua scripts cleanup. dankan18902017-05-141-1/+0
|