66 Commits

Author SHA1 Message Date
Olivier Galibert
a1f9b86c4f New sound backend support. 2024-03-26 18:36:35 +01:00
Vas Crabb
9626b93a41 Fixes and cleanup:
roland/roland_d70.cpp: Use object finders, use memory shares rather than
ram_device, fixed Endianness bugs, fixed bad indentation, fixed
double-qualified member functions, use m_ prefix consistently for
members, use lowercase hex digits, don't allow writes to ROM, fixed
header #include order.

docs: Corrected docmented default for ui_mouse option.

tektronix/tek440x.cpp: #include local headers first, etc.

bus/a2bus/snesmax.h: Fixed copy/pasted comment.

yamaha/ympsr2000.cpp: Put code in an anonymous namespace.
2024-03-12 04:47:09 +11:00
Angelo Salese
7c67c1b2da docs: Fixed typo in -wavwrite option example. (#11919) 2024-01-09 05:22:38 +11:00
Firehawke
09be4295de docs: Fixed documentation compilation warning. (#11586)
Fixes a title underline too short warning.
2023-10-01 13:10:30 +11:00
Tom Cariello
30d92e397d docs: Fixed many editing errors and spelling errors. (#11575)
Also fixed outdated link to contributing guidelines.
2023-09-29 00:41:31 +10:00
Vas Crabb
82394e8569 Adjustments to option priority interactions:
emu/sound.cpp: Made -volume in source file INI or higher priority
context take precedence over volume read from CFG file.  This matches
behaviour of -bgfx_screen_chains.

emu/input.cpp: Made explicit -no{mouse|joystick|lightgun} take
precedence over -{mouse|trackball|adstick|paddle}_device etc. from lower
priority levels.

Alos got rid of a bunch of unnecessary simple_list.
2023-05-09 01:49:41 +10:00
Vas Crabb
b06dae9201 clifront.cpp: Changed -listbios to work more like -listslots, showing all BIOS options in a system. 2023-04-10 06:34:35 +10:00
Vas Crabb
f3850d1e3c Cleaned up some recent changes. 2023-02-04 03:25:01 +11:00
Vas Crabb
43e30203bd docs: Clarified documentation of input options.
Made explanation of interaction between device class enable options
(-[no]mouse, -[no]joystick, -[no]lightgun) and automatic device class
enable options (-*_device) more explicit.  Also documented that
-mouse_device mouse is set by default in both relevant places.

Provided a better explanation of the purpose of -dual_lightgun.
2023-02-03 04:27:40 +11:00
Vas Crabb
68472d3d72 Various input and OSD refactoring:
osd: Supply OSD object to modules on initialisation.  Encapsulated some
event handling in the OSD objects rather than leaving it in free
functions.  Put various stuff in namespaces.

osd/modules/input: Enabled dinput, xinput and winhybrid modules for
Windows SDL builds, and enabled background input for dinput and xinput
(and by extension winhybrid) modules.  Also fixed some COM and X11
resource leaks.

osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match
Windows, and exposed vertical and horizontal scroll as Z and rZ axes.
Moved SDL UI event handling out of input devices into OSD object.

osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's
correctly identified as a relative axis (it maps to the scroll wheel
equivalent).

osd: Added an option to choose the network provider module.  Mostly
useful if you build with both TUN/TAP and pcap support included, or if
you want to disable emulated networking completely.

emu/input.cpp: Use a better strategy for assembling input code names
that uses fewer temporary strings and doesn't require use of the
non-Unicode-aware space trimming function (fixes MT08552).

osd/modules/input_dinput.cpp: Improved polling logic.

osd: Made various parts of the input code less dependent on concrete emu
objects, and reduced inappropriately passing around the machine object.
Made input modules less dependent on OSD implementation.  Encapsulated
some stuff and got rid of some vestigial newui and SDL1 support code.
Cleaned up some interfaces.  Moved OSD options classes to their own
files.

Prepare to remove main.h from emu.h - it's mostly used to get the
application name, which the vast majority of emulated devices don't need
to do.
2023-01-29 03:16:14 +11:00
Vas Crabb
2498f2b7cf Miscellaneous fixes and refactoring:
ui/analogipt.cpp: Fixed bar graph display for fields with ranges
that wrap through zero.

emu/inputdev.cpp: Separateed analog axis deadzone and switch threshold
settings, reduced default deadzone, and fixed a potential division by
zero if the deadzone and saturation settings are equal.

emu/ioport.cpp: Fixed behaviour of absolute analog fields where range
passes through zero - it previously only worked for specific
combinations of mask, minimum and default.  Removed a workaround from
universal/getaway.cpp that is no longer necessary.

emu/input.cpp: Fixed unintuitive behaviour when an absolute field is
assigned an OR combination of a relative control folled by an absolute
control (e.g. Mouse X or Joy 1 LSX).  Also fixed reading axis input
sequences where an axis code is followed by a switch code (these can
only be produced by manually editing configuration files, not through
MAME's UI), and fixed the returned type when multiple relative axes sum
to zero.

osd/modules/input_dinput.cpp: Fixed hat switches being stuck in up
position when input is suspended in the background

taito/taitoio_yoke.cpp: Give throttle control a distinct type, and don't
auto-centre.

osd: Added option to select MIDI provider module (currently only
PortMidi and the dummy module are available).  Also put various things
in namespaces, and fixed builds including SDL sound module with native
Windows OSD.

emu/validity.cpp: Added check to catch I/O port fields using UI input
types.

emu/inpttype.ipp: Renamed inputs that were causing confusion.  "Bill"
and "Track" were causing confusion for translators and hence likely
causing confusion for many users, especially those who are not native
English speakers.  "Track" as an abbreviation for "Trackball" was
frequently being mistranslated, e.g. in the sense of a CD track
selection button or even in the sense of a railway track.  There's no
reason to abbreviate it.  "Bill" in the US English sense as a banknote
is too ambiguous and was causing confusion for translators.  It's better
to use the less ambiguous "Banknote".  Corrected Greek translations of
"Trackball".

Don't run GitHub Actions on issue template changes.
2023-01-28 08:16:53 +11:00
AJR
5087e6c2f9 Add -listbios command to list alternate BIOSes for drivers and devices 2023-01-24 21:00:08 -05:00
Vas Crabb
2592ac32c1 osd: Added option to accept SDL game controller/joystick input when losing UI focus. 2023-01-14 15:57:22 +11:00
Vas Crabb
5c4dcb3016 docs: Updated default joystick providers. 2023-01-14 07:10:21 +11:00
Vas Crabb
bf2707f4c7 osd: Added support for mapping files to sdlgame joystick provider and made it default with SDL.
This changes behaviour, however I think it's a net positive:
* Most games using Steam Input or SDL2 to read game controllers have
  this behaviour, so users have come to expect it.
* This module is better at giving meaningful names to buttons on
  common controller, and assigning axes consistently.
* Button/axis mapping files using a widely-used format are supported.
* The old behaviour is still available with `-joystickprovider sdljoy`
  if anyone wants it.

The new option for controller mapping files is in the general OSD
options rather than SDL options as it can be extended to DirectInput in
the future.
2023-01-14 03:13:59 +11:00
Vas Crabb
fee7047c16 -osd: Better XInput and SDL game controller input enhancements:
* Added initial support for XInput controller subtypes, starting with
  driving, arcade and flight controllers.
* Check XInput capabilities to ignore buttons and hats that aren't
  present.
* Added preliminary SDL Game Controller joystick provider.  Reconnection
  and mixed Game Controller/Joystick devices are unsupported.
* Show the input token for the highlighted control on input device
  menus.

-ui: Allow menus to set required space above and below menu when metrics
change.  Fixes the initial bad layout on the system selecton menu, or
bad layout after resizing windows.
2023-01-12 18:14:13 +11:00
Vas Crabb
b80b4066bf osd/sdl: Removed keyboard/mouse/joystick device mapping options.
The keyboard and mouse device mapping options did nothing at all, mostly
because of lack of support for separating inputs from multiple devices.

The joystick options were useless when you have two of the same kind of
controller, and you can achieve the same thing with controller
configuration files.
2022-07-15 15:16:33 +10:00
Vas Crabb
422185fe55 docs: Added page describing how MAME searches for media.
Also made error messages for missing CHDs and missing files for software
parts using the image file loader show search paths, and changed the
(poorly named) bitbanger device to use the image file loader rather than
the ROM loader for software items.
2022-03-10 02:55:40 +11:00
Vas Crabb
cb16512392 Clean up various loose ends:
frontend: Exposed debug symbol tables and parsed expressions to Lua
(these can be used when the debugger is not active).  Also made it
simpler to walk input types.

imagedev/bitbngr.cpp: Added software list loader support (used by
sitcom).

sitcom.cpp: Replaced bankdev with a memory view.  Also added a bar graph
for the timer DAC output, and made the DL1414 displays squarer in the
layout like they are in real life.  They still don't look right because
the internal segment drawing code doen't draw the segments the right
width.

docs: Fixed broken links and added missing links in command line options
index.  Also removed documentation for an option that no longer exists
and fixed some inconsistent terminology.

Separated includes by module in various drivers.
2022-02-03 09:00:23 +11:00
Vas Crabb
d29287e092 -emu/ioport.cpp: Made default behaviour better.
* If an input is configured to some combination of controls that are not
  present at all, ignore the setting altogether for the session.
* Fixed relative axes with PORT_RESET not responding to absolute
  controls (MT07685).
* Fixed relative axes not responding to an absolute control if the value
  doesn’t change every frame (eg. holding a stick against the stop).
* Changed the scaling for absolute controls assigned to relative axes to
  make defaults more sane (e.g. arkanoid or spdheat with a joystick).

-frontend: Fixed some localisation issues in Analog Controls menu.

-docs: Added documentation on assigning inputs.
2021-11-03 19:41:40 +11:00
Vas Crabb
d775a2731d plugins: Moved the timecode recording functionality to a plugin. 2021-11-02 15:31:03 +11:00
Vas Crabb
669b1f6ade -docs: Started documenting plugins.
* Also added a couple of missing command-line options, and added a local
  table of contents to the (rather long) command line options page.

-Added a separate CI target for localisation updates that produces an
 artefact, and removed the message catalogs from the trigger paths for
 the Linux CI build.
2021-10-24 05:48:05 +11:00
Vas Crabb
ca338f7372 Various improvements to the user experience:
Extended the memory access prefixes in debugger expressions to support
address space names.

Made the debugger history command aware of how much history it has
collected, and added a help topic for it to the built-in debugger help.

Started updating the documentation for the web site, and corrected some
of the more misleading built-in debugger help.

Made some corrections to Chinese localisation after discussion with
YuiFAN.

Darkened the UI red colour a little.

cpu/m6502/st2205u.h: Marked sound imperfect.
2021-10-13 10:59:38 +11:00
0kmg
4395d59216 emu/video.cpp: Set file names via -snapname when exiting in -seconds_… (#8633) 2021-09-30 16:22:43 -04:00
hap
9db8443a30 docs: explain compressor a bit again 2021-09-24 21:39:40 +02:00