Commit Graph

465 Commits

Author SHA1 Message Date
Aaron Giles
4384558d9b
Update ymfm library to latest version (a78b567): [Aaron Giles, hyano] (#10052)
- Fix incorrect operator volumes in some cases for OPL (MT8108)
 - Fix PCM playback to cut off previous notes when new waveforms are selected (see dragnblz)
 - Fix reversed OPM noise frequency
 - Fix bug preventing CSM key ons from being noticed
 - Fix bug where SSG EG envelope could be left in inverted state
 - Fix SSG envelope handling when tone and noise are off
 - Increase strength of DAC discontinuity in YM2612
 - Improve latching logic for fnums in OPN
 - Increase envelope suppression threshold so some effects don't get prematurely muted
 - Improve ADPCM-B behavior at stop/limit addresses (more thorough rewrite here coming later)
2022-07-08 09:44:18 -04:00
Vas Crabb
f47f9c3db3
ui, docs: Added menus to fill a couple of gaps, improved consistency. (#9915)
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).
2022-06-11 21:47:19 +10:00
Devin Acker
75e986a651
3rdparty/portmidi: Fixed windows MIDI callback signatures. (#9781) 2022-05-20 04:41:08 +10:00
Patrick Mackinlay
02e5f1e468 asmjit: sync with upstream 2022-05-17 16:51:29 +07:00
Vas Crabb
6fa1f03bf0 3rdparty: Updated zlib to version 1.2.12. 2022-04-14 10:39:41 +10:00
Patrick Mackinlay
e4588d1f45 asmjit: mame integration 2022-02-13 21:26:55 +07:00
Patrick Mackinlay
1fba2b4f2c asmjit: sync with upstream 2022-02-13 21:26:55 +07:00
Aaron Giles
d187a28fad
ymfm: Correct for free-running timer B multipler (#8988) 2021-12-16 08:16:48 -05:00
AJR
224384612e Build fixes for clang 2021-11-14 15:04:11 -05:00
Vas Crabb
d950b2d9b5 3rdparty/asio: Set x bit on scripts, since Windows git won't. 2021-11-15 04:50:36 +11:00
Vas Crabb
f570febfa1 Actually commit the source changes for ASIO 1.20.0 update.
Also changed the fix to ASIO itself to match the upstream change in
commit cd68912b7eb07f24e501e8cbff832b61ec292eea.
2021-11-15 04:41:40 +11:00
Vas Crabb
44ec6d2e0e 3rdparty: Updated ASIO to version 1.20.0.
The doc folder isn't included as it's pretty big.

This required include/asio/detail/win_iocp_socket_accept_op.hpp due to
mismatched order in the member declarations and initialiser list for the
win_iocp_socket_accept_op class.  I reversed the declaration order so it
matches win_iocp_socket_move_accept_op.
2021-11-15 04:15:13 +11:00
Matthew Barnes
11745ec4a5
genie: Define _FILE_OFFSET_BITS=64 on Linux. (#8808) 2021-11-11 17:14:18 +11:00
Vas Crabb
38082ccbee
Overdue internal UI enhancements (#8674)
* 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.
2021-10-09 12:16:17 +11:00
Julian Sikorski
0eeb918991
Update bgfx, bx and bimg to latest upstream (fixes issue #8057) (#8645) 2021-10-02 12:21:12 -04:00
Бранимир Караџић
1a6a018fc3 Update bgfx to latest 2021-08-10 20:28:56 +02:00
Бранимир Караџић
702c9b45cc Update bimg to latest 2021-08-10 20:27:19 +02:00
Бранимир Караџић
a851430879 Update bx to latest 2021-08-10 20:26:34 +02:00
Aaron Giles
3d450c480d ymf278b: Allow PCM writes if new2flag is set, even if newflag is not. Fixes MT08033. 2021-07-24 00:53:38 -07:00
Aaron Giles
6bb6d3db45 ymfm: Return masked status from set/reset function. Fixes MT08034. 2021-07-23 18:26:36 -07:00
Aaron Giles
f996103315 ymfm: Sync with upstream
* Fix LFO disable on YM2151
* Fix swapped lower nibbles for 12-bit PCM on OPL4
2021-07-23 01:21:27 -07:00
Calvin Buckley
4ab4f74106
Implement 68k FPU FATAN instruction (#8287) 2021-07-18 12:53:08 -04:00
Miodrag Milanovic
1c0852d3d4 Fix cross compiling benchmarks 2021-06-22 14:42:42 +02:00
Aaron Giles
86d1ef2604 ymfm: Play ADPCM-A samples through the end of the end block inclusive 2021-06-22 00:39:32 -07:00
Aaron Giles
102f311ae7 Fix reporting of ADPCM-B end-of-sample. Seems to fix MT08006; hopefully will fix other neogeo issues as well. 2021-06-21 20:22:33 -07:00
Aaron Giles
973373e712 ymfm: Sync with upstream:
* Fix panning calculations in OPL4 (YMF278B)
* Make OPQ reverb less ridiculous
2021-06-01 09:54:44 -07:00
Aaron Giles
04027e4fa7 ymfm: Sync with upstream:
* Match OPN LFO frequencies to hardware measurements
 * Improve OPQ detune, reverb, and KSR
2021-05-29 02:37:19 -07:00
Aaron Giles
646938cf96 ymfm: Don't mask off top bit of octave for OPQ. 2021-05-23 20:50:54 -07:00
Aaron Giles
9e1ed0acf4 ymfm: Improve OPQ behavior for timers and register access. Add YM3533 device and use that instead of YM3806. 2021-05-23 18:13:07 -07:00
Aaron Giles
48bde2d647 ymfm: Fix OPZ fine tuning and envelope shift. Now pretty much all the TX81Z built-in instruments sound reasonable. 2021-05-23 16:02:28 -07:00
Aaron Giles
ac96627377 ymfm: Some progress on OPZ. Some instruments in the TX81Z sound kind of ok now. 2021-05-23 13:24:36 -07:00
Aaron Giles
b78991fc83 ymfm: Fix OPL3 waveform 7 to better match hardware. 2021-05-22 13:28:30 -07:00
Aaron Giles
3ccdbfc3b5 ymfm: Add missing clamp in YM2608 2021-05-22 11:20:43 -07:00
Aaron Giles
e825cb34bb ymfm: Boost ADPCM-B volume by a factor of 2 to more closely match previous levels. Addresses MT #07956 2021-05-22 11:13:44 -07:00
Aaron Giles
d9db7d77c4
ymfm: Sync with latest, add complete YMF278B support (#8090)
* Sync with upstream. I/O callbacks are now consolidated into a single read callback and a single write callback, with an access type specifier.
* Initial working implementation of YM278B. Most features implemented, except vibrato.
* Implement vibrato and status register flags. Fix envelope rate computation.
* Rename ymfm_interface::external_type to access_class and clean up the fallout.
* Formally replace the old YMF278B engine with the one from ymfm
* Rotated YMF278B outputs into a more logical order.
* Re-evaluted envelope calculations and 2x works better than the weird 15/8 I came up with before. Also changed the way FM resampling is computed to be more precise (and simpler). Turned off extraneous debugging.
* Start of/reset to a null state with no loaded waveforms.
* Fix YM2608 I/O ports.
2021-05-22 12:33:21 -04:00
Aaron Giles
cb48ece8f9 ymfm: Switch to internal SSG for YM2203/2608/2610. Clean up code to determine the number of SSG outputs. 2021-05-15 00:40:03 -07:00
Aaron Giles
3cfc522458
ymfm: Refactor new FM engine into a 3rdparty library (#8046)
ymfm: refactor the code into a separate 3rdparty library
* Moved ymfm core implementation to 3rdparty/ymfm
* Split out each family (OPM/OPN/OPL/etc) into its own source file
* Added preliminary OPQ and OPZ support, still WIP
* Put all 3rdparty code into its own namespace ymfm
* Fixed various bugs reported in #8042
* Created interface class for communication between the 3rdparty engine and the emulator
* Standardized MAME implementation of all Yamaha devices based on a template class
* Created standard base class ym_generic that can be used when multiple YM chips are swapped in
* Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device
* Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off)
* Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc)
2021-05-14 18:33:49 -07:00
987123879113
e6d3720985
-Improved accuracy of System 573's digital I/O audio emulation. (#7664)
* Refactored mas3507d and k573dio/fpga to be more accurate to real hardware.

-3rdparty/minimp3: Updated to latest master and removed local changes.
2021-01-16 05:12:26 +11:00
arbee
29cff632d3 SDL2: temp macOS compile fix for bundled SDL2 pending the 2.0.14 release [R. Belmont] 2020-12-12 21:58:26 -05:00
cracyc
d73b585d65 linenoise: properly handle numpad enter 2020-12-05 10:57:34 -06:00
Vas Crabb
f191d038ec Minimal changes to sol2 and bgfx to compile as C++17.
These changes should be sent upstream as pull requests.
2020-11-15 03:57:08 +11:00
Vas Crabb
55b8ca317a -Switch to building MAME as C++17.
* Updated sol2 to 3.2.2
* Updated pugixml to 1.10
* Increased minimum clang version to 6
* Cleaned up some stuff that can use new features
2020-11-15 03:53:47 +11:00
Vas Crabb
d256f069a5 -3rdparty/expat: Update to 2.2.10."
-Fixed tiny build (missing s11c_bg_device) and unused lambda capture in emu/rendlay.cpp.
2020-10-15 04:28:42 +11:00
Vas Crabb
f390ea1004 3rdparty/nanosvg: Re-base on latest upstream.
Now based on upstream cc6c08d3a80f1a305021af3d6394cdf1535d02a2.

Among other things, this version is supposed to be less sensitive to the
global locale.
2020-10-05 22:18:22 +11:00
Vas Crabb
009ef965f2 3rdparty/sqlite3: Updated to SQLite 3.33.0 2020-10-04 13:54:52 +11:00
AJR
dcbee7cda6 Fix SOL2 build on GCC 10.2 by working around overload resolution problem 2020-07-28 20:33:25 -04:00
Patrick Mackinlay
954451fbfa asmjit: sync with upstream (nw) 2020-06-18 18:26:21 +07:00
Patrick Mackinlay
c70d979b7e asmjit: mame changes (nw) 2020-06-12 12:01:44 +07:00
Patrick Mackinlay
19214dd8e6 asmjist: sync with upstream (nw) 2020-06-12 11:55:10 +07:00
AJR
9f5ab3f237 Fix build even more (nw) 2020-05-30 15:56:10 -04:00