mirror of
https://github.com/libretro/mame.git
synced 2025-02-18 18:12:10 +00:00
-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.
This commit is contained in:
parent
3a11f91687
commit
669b1f6ade
2
.github/workflows/ci-linux.yml
vendored
2
.github/workflows/ci-linux.yml
vendored
@ -6,7 +6,6 @@ on:
|
||||
- '.github/**'
|
||||
- '3rdparty/**'
|
||||
- 'hash/**'
|
||||
- 'language/**'
|
||||
- 'scripts/**'
|
||||
- 'src/**'
|
||||
- 'COPYING'
|
||||
@ -16,7 +15,6 @@ on:
|
||||
- '.github/**'
|
||||
- '3rdparty/**'
|
||||
- 'hash/**'
|
||||
- 'language/**'
|
||||
- 'scripts/**'
|
||||
- 'src/**'
|
||||
- 'COPYING'
|
||||
|
34
.github/workflows/docs.yml
vendored
34
.github/workflows/docs.yml
vendored
@ -3,28 +3,30 @@ name: Build documentation
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'docs/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'docs/**'
|
||||
|
||||
jobs:
|
||||
build-docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y librsvg2-bin latexmk python3-pip python3-sphinx texlive texlive-formats-extra texlive-science
|
||||
pip3 install sphinxcontrib-svg2pdfconverter
|
||||
- name: Build HTML
|
||||
run: make -C docs html
|
||||
- name: Build PDF
|
||||
run: make -C docs latexpdf
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: mame-docs-${{ github.sha }}
|
||||
path: |
|
||||
docs/build/html
|
||||
docs/build/latex/MAME.pdf
|
||||
- uses: actions/checkout@master
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y librsvg2-bin latexmk python3-pip python3-sphinx texlive texlive-formats-extra texlive-science
|
||||
pip3 install sphinxcontrib-svg2pdfconverter
|
||||
- name: Build HTML
|
||||
run: make -C docs html
|
||||
- name: Build PDF
|
||||
run: make -C docs latexpdf
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: mame-docs-${{ github.sha }}
|
||||
path: |
|
||||
docs/build/html
|
||||
docs/build/latex/MAME.pdf
|
||||
|
23
.github/workflows/language.yml
vendored
Normal file
23
.github/workflows/language.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
name: Compile UI translations
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'language/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'language/**'
|
||||
|
||||
jobs:
|
||||
build-language:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: Compile message catalogs
|
||||
run: for x in language/*/*.po ; do python scripts/build/msgfmt.py --output-file "`dirname "$x"`/`basename "$x" .po`.mo" "$x" ; done
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: mame-language-${{ github.sha }}
|
||||
path: language/*/*.mo
|
@ -6,6 +6,8 @@ Universal Commandline Options
|
||||
This section contains configuration options that are applicable to *all* MAME
|
||||
sub-builds (both SDL and Windows native).
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
Commands and Verbs
|
||||
------------------
|
||||
@ -684,7 +686,7 @@ OSD-related Options
|
||||
|
||||
.. _mame-commandline-uifontprovider:
|
||||
|
||||
**-uifontprovider**
|
||||
**-uifontprovider** *<module>*
|
||||
|
||||
Chooses provider for UI font rendering. The default setting is ``auto``.
|
||||
|
||||
@ -727,7 +729,7 @@ Example:
|
||||
|
||||
.. _mame-commandline-keyboardprovider:
|
||||
|
||||
**-keyboardprovider**
|
||||
**-keyboardprovider** *<module>*
|
||||
|
||||
Chooses how MAME will get keyboard input. The default is ``auto``.
|
||||
|
||||
@ -779,7 +781,7 @@ Example:
|
||||
|
||||
.. _mame-commandline-mouseprovider:
|
||||
|
||||
**\-mouseprovider**
|
||||
**-mouseprovider** *<module>*
|
||||
|
||||
Chooses how MAME will get mouse input. The default is ``auto``.
|
||||
|
||||
@ -827,7 +829,7 @@ Example:
|
||||
|
||||
.. _mame-commandline-lightgunprovider:
|
||||
|
||||
**\-lightgunprovider**
|
||||
**-lightgunprovider** *<module>*
|
||||
|
||||
Chooses how MAME will get light gun input. The default is ``auto``.
|
||||
|
||||
@ -874,7 +876,7 @@ Example:
|
||||
|
||||
.. _mame-commandline-joystickprovider:
|
||||
|
||||
**\-joystickprovider**
|
||||
**-joystickprovider** *<module>*
|
||||
|
||||
Chooses how MAME will get joystick input. The default is ``auto``.
|
||||
|
||||
@ -922,9 +924,9 @@ OSD CLI Options
|
||||
|
||||
.. _mame-commandline-listmidi:
|
||||
|
||||
**\-listmidi**
|
||||
**-listmidi**
|
||||
|
||||
Create a list of available MIDI I/O devices for use with emulation.
|
||||
List available MIDI I/O devices for use with emulation.
|
||||
|
||||
Example:
|
||||
.. code-block:: bash
|
||||
@ -938,9 +940,9 @@ OSD CLI Options
|
||||
|
||||
.. _mame-commandline-listnetwork:
|
||||
|
||||
**\-listnetwork**
|
||||
**-listnetwork**
|
||||
|
||||
Create a list of available Network Adapters for use with emulation.
|
||||
List available network adapters for use with emulation.
|
||||
|
||||
Example 1:
|
||||
.. code-block:: bash
|
||||
@ -3448,7 +3450,8 @@ Debugging Options
|
||||
Activates the integrated debugger. By default, pressing the tilde
|
||||
(**~**) key during emulation breaks into the debugger. MAME also
|
||||
breaks into the debugger after the initial soft reset on startup if
|
||||
the debugger is active.
|
||||
the debugger is active. See :ref:`debugger` for information on using
|
||||
the debugger.
|
||||
|
||||
The default is OFF (**-nodebug**).
|
||||
|
||||
@ -3457,6 +3460,40 @@ Debugging Options
|
||||
|
||||
mame indy_4610 -debug
|
||||
|
||||
.. _mame-commandline-debugger:
|
||||
|
||||
**-debugger** *<module>*
|
||||
|
||||
Chooses the module to use for debugging the target system when the
|
||||
:ref:`debug <mame-commandline-debug>` option is on. Available debugger
|
||||
modules depend on the host platform and build options.
|
||||
|
||||
Supported debugger modules:
|
||||
|
||||
windows
|
||||
Win32 GUI debugger (default on Windows). Only supported on Windows.
|
||||
qt
|
||||
Qt GUI debugger (default on Linux). Supported on Windows, Linux and
|
||||
macOS, but only included on Linux by default. Set ``USE_QTDEBUG=1``
|
||||
when compiling MAME to include the Qt debugger on Windows or macOS.
|
||||
osx
|
||||
Cocoa GUI debugger (default on macOS). Only supported on macOS.
|
||||
imgui
|
||||
ImgUi GUI debugger displayed in first MAME window. Requires
|
||||
:ref:`video <mame-commandline-video>` option to be set to **bgfx**.
|
||||
Supported on all platforms with BGFX video output support.
|
||||
gdbstub
|
||||
Acts as a remote debugging server for the GNU debugger (GDB). Only a
|
||||
small subset of the CPUs emulated by MAME are supported. Use the
|
||||
:ref:`debugger_port <mame-commandline-debuggerport>` option to set the
|
||||
listening port on the loopback interface. Supported on all platforms
|
||||
with TCP socket support.
|
||||
|
||||
Example:
|
||||
.. code-block:: bash
|
||||
|
||||
mame ambush -debug -debugger qt
|
||||
|
||||
.. _mame-commandline-debugscript:
|
||||
|
||||
**-debugscript** *<filename>*
|
||||
@ -3469,7 +3506,7 @@ Debugging Options
|
||||
Example:
|
||||
.. code-block:: bash
|
||||
|
||||
mame galaga -debugscript testscript.txt
|
||||
mame galaga -debug -debugscript testscript.txt
|
||||
|
||||
.. _mame-commandline-updateinpause:
|
||||
|
||||
@ -3504,6 +3541,21 @@ Debugging Options
|
||||
|
||||
mame ibm_5150 -watchdog 30
|
||||
|
||||
.. _mame-commandline-debuggerport:
|
||||
|
||||
**-debugger_port** *<port>*
|
||||
|
||||
Set the TCP port number to listen on for GDB connections when using the GDB
|
||||
stub debugger module (see the :ref:`debugger <mame-commandline-debugger>`
|
||||
option).
|
||||
|
||||
The default is ``23946``.
|
||||
|
||||
Example:
|
||||
.. code-block:: bash
|
||||
|
||||
mame rfjet -debug -debugger gdbstub -debugger_port 2159
|
||||
|
||||
.. _mame-commandline-debuggerfont:
|
||||
|
||||
**-debugger_font** *<fontname>* / **-dfont** *<fontname>*
|
||||
@ -3912,7 +3964,7 @@ HTTP Server Options
|
||||
|
||||
.. _mame-commandline-httpport:
|
||||
|
||||
**-http_port** *[port]*
|
||||
**-http_port** *<port>*
|
||||
|
||||
Choose HTTP server port.
|
||||
|
||||
@ -3925,7 +3977,7 @@ HTTP Server Options
|
||||
|
||||
.. _mame-commandline-httproot:
|
||||
|
||||
**-http_root** *[rootfolder]*
|
||||
**-http_root** *<rootfolder>*
|
||||
|
||||
Choose HTTP server document root.
|
||||
|
||||
|
@ -63,9 +63,9 @@ copyright = u'2021, MAMEdev Team'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.227'
|
||||
version = '0.237'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.227'
|
||||
release = '0.237'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -22,6 +22,7 @@ MAME Documentation
|
||||
|
||||
usingmame/index
|
||||
commandline/index
|
||||
plugins/index
|
||||
advanced/index
|
||||
|
||||
debugger/index
|
||||
|
109
docs/source/plugins/autofire.rst
Normal file
109
docs/source/plugins/autofire.rst
Normal file
@ -0,0 +1,109 @@
|
||||
.. _plugins-autofire:
|
||||
|
||||
Autofire Plugin
|
||||
===============
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
.. _plugins-autofire-intro:
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The autofire plugin allows you to simulate repeatedly pressing an emulated
|
||||
button by holding down a key or button combination. This can help people with
|
||||
certain disabilities or injuries play shooting games, and may help reduce the
|
||||
risk of repetitive strain injuries (or keyboard damage).
|
||||
|
||||
To configure the autofire plugin, activate the main menu (press **Tab** during
|
||||
emulation by default), select **Plugin Options**, and then select **Autofire**.
|
||||
Configured autofire buttons for the current system are listed, along with their
|
||||
repetition rates and activation hotkeys (initially there will be no autofire
|
||||
buttons configured). Select an autofire button to change settings, or choose
|
||||
**Add autofire button** to set up a new autofire button. See
|
||||
:ref:`plugins-autofire-settings` for details on setting up an autofire button.
|
||||
You can delete an autofire button by highlighting it in the menu and pressing
|
||||
the UI Clear key (Del/Delete/Forward Delete on the keyboard by default).
|
||||
|
||||
Autofire settings are saved in the **autofire** folder in the plugin data
|
||||
folder (see the :ref:`homepath option <mame-commandline-homepath>`). A file is
|
||||
created for each system with autofire buttons configured, named according to the
|
||||
system’s short name (or ROM set name), with the extension ``.cfg``. For
|
||||
example, autofire settings for Super-X will be saved in the file **superx.cfg**
|
||||
in the **autofire** folder in your plugin data folder. The autofire settings
|
||||
are stored in JSON format.
|
||||
|
||||
|
||||
.. _plugins-autofire-settings:
|
||||
|
||||
Autofire buttons settings
|
||||
-------------------------
|
||||
|
||||
The options for adding a new autofire button or modifying an existing autofire
|
||||
button are the same.
|
||||
|
||||
Select **Input** to set the emulated button that you want to simulate pressing
|
||||
repeatedly. Currently, only player buttons are supported. Typically you’ll set
|
||||
this to the primary fire button for shooting games. This is most often *P1
|
||||
Button 1* or the equivalent for another player, but it might have have a
|
||||
different name. On Konami’s Gradius games, *P1 Button 2* is the primary fire
|
||||
button.
|
||||
|
||||
Select **Hotkey** to set the input combination you’ll use to activate the
|
||||
autofire button. This can be any combination that MAME supports for activating
|
||||
a digital input.
|
||||
|
||||
**On frames** and **Off frames** are the number of consecutive emulated video
|
||||
frames that the emulated button will be held and released for, respectively.
|
||||
Adjust the value with the UI Left/Right keys, or click the arrows. Press the UI
|
||||
Clear key to reset the values to one frame. Lower values correspond to pressing
|
||||
the button at a faster rate. Depending on how fast the system reads inputs, you
|
||||
may need higher numbers than 1 for the system to recognise the button being
|
||||
released and pressed again (e.g. 2 on frames and 2 off frames works for Alcon).
|
||||
Experiment with different values to get the best effect.
|
||||
|
||||
When adding a new autofire button, there is a **Cancel** option that changes to
|
||||
**Create** after you set the input and hotkey. Select **Create** to finish
|
||||
creating the autofire button and return to the list of autofire buttons. The
|
||||
new autofire button will be added at the end of the list. Press the UI Cancel
|
||||
key (Escape/Esc on the keyboard by default), or select **Cancel** before setting
|
||||
the input/hotkey, to return to the previous menu without creating the new
|
||||
autofire button.
|
||||
|
||||
When modifying an existing autofire button, select **Done** or press the UI
|
||||
Cancel key to return to the list of autofire buttons. Changes take effect
|
||||
immediately.
|
||||
|
||||
|
||||
.. _plugins-autofire-notes:
|
||||
|
||||
Notes and potential pitfalls
|
||||
----------------------------
|
||||
|
||||
Autofire buttons act as if they’re wired in parallel with MAME’s regular inputs.
|
||||
This means that if you set the activation hotkey for an autofire button to a
|
||||
button or key that’s also assigned to one of the emulated inputs directly, you
|
||||
may get unexpected results. Using Gradius as an example:
|
||||
|
||||
* Suppose you set button 1 on your controller to fire, and set an autofire
|
||||
hotkey to button 1 as well. Holding the button down to shoot will not trigger
|
||||
the autofire effect: the button will never be released as you’re holding the
|
||||
non-autofire button 1 down. This will also happen if you set a different
|
||||
button as autofire (say, button 3 in this case), and hold button 1 down while
|
||||
also pressing button 3.
|
||||
* If you set button 3 on your controller to autofire and assign button 3 to
|
||||
powerup as well, you will trigger the powerup action every time you grab a
|
||||
powerup because the powerup button is also being held down along with the
|
||||
autofire button.
|
||||
|
||||
It is suggested you choose input combinations for autofire hotkeys that are not
|
||||
assigned to any other emulated inputs in the system.
|
||||
|
||||
Autofire is not necessarily desirable in all situations. For example using
|
||||
autofire in Super-X with the blue “lightning” weapon equipped at high power
|
||||
levels will only produce a single beam, greatly reducing the weapon’s
|
||||
effectiveness. The fire button must be held down to produce all beams. Some
|
||||
shooting games (e.g. Raiden Fighters) require the primary fire button to be held
|
||||
down for a charged special attack. This means it’s often necessary to have a
|
||||
non-autofire input for the primary fire button assigned to play effectively.
|
9
docs/source/plugins/console.rst
Normal file
9
docs/source/plugins/console.rst
Normal file
@ -0,0 +1,9 @@
|
||||
.. _plugins-console:
|
||||
|
||||
Console Plugin
|
||||
==============
|
||||
|
||||
The console plugin provides functionality for MAME’s interactive Lua console.
|
||||
It is not used directly. Use the
|
||||
:ref:`console option <mame-commandline-console>` to activate the interactive Lua
|
||||
console. See :ref:`luaengine` for more information about MAME’s Lua API.
|
54
docs/source/plugins/data.rst
Normal file
54
docs/source/plugins/data.rst
Normal file
@ -0,0 +1,54 @@
|
||||
.. _plugins-data:
|
||||
|
||||
Data Plugin
|
||||
===========
|
||||
|
||||
The data plugin loads information from various external support files so it can
|
||||
be displayed in MAME. If the plugin is enabled, info is show in the **Infos**
|
||||
tab of the right-hand pane on the system and software selection menus. The info
|
||||
viewer can be shown by clicking the toolbar button on the system and software
|
||||
selection menus, or by choosing **External DAT View** from the main menu during
|
||||
emulation (this menu item will not appear if the data plugin is not enabled, or
|
||||
if no information is available for the emulated system).
|
||||
|
||||
To set the folders where the data plugin looks for supported files, choose
|
||||
**Configure Options** on the system selection menu, then choose
|
||||
**Configure Directories**, and then choose **DATs**. You can also set the
|
||||
``historypath`` option in your **ui.ini** file.
|
||||
|
||||
The following files are supported:
|
||||
|
||||
history.xml
|
||||
From `Gaming-History <https://www.arcade-history.com/>`_ (formerly
|
||||
Arcade-History)
|
||||
mameinfo.dat
|
||||
From `MASH’s MAMEINFO <https://mameinfo.mameworld.info/>`_
|
||||
messinfo.dat
|
||||
From `progetto-SNAPS MESSINFO.dat
|
||||
<https://www.progettosnaps.net/messinfo/>`_
|
||||
gameinit.dat
|
||||
From `progetto-SNAPS GameInit.dat
|
||||
<https://www.progettosnaps.net/gameinit/>`_
|
||||
command.dat
|
||||
from `progetto-SNAPS Command.dat
|
||||
<https://www.progettosnaps.net/command/>`_
|
||||
score3.htm
|
||||
`Top Scores <http://replay.marpirc.net/txt/scores3.htm>`_ from
|
||||
the `MAME Action Replay Page <http://replay.marpirc.net/>`_
|
||||
Japanese mameinfo.dat and command.dat
|
||||
From `MAME E2J <https://e2j.net/downloads/>`_
|
||||
sysinfo.dat
|
||||
From the defunct Progetto EMMA site
|
||||
story.dat
|
||||
From the defunct MAMESCORE site
|
||||
|
||||
If you install `hi2txt <https://greatstoneex.github.io/hi2txt-doc/>`_, the data
|
||||
plugin can also show high scores from non-volatile memory or saved by the
|
||||
:ref:`hiscore support plugin <plugins-hiscore>` for supported games.
|
||||
|
||||
Note that you can only use a single file of each type at a time. You cannot,
|
||||
for example, use the English and Japanese **mameinfo.dat** files simultaneously.
|
||||
|
||||
The data plugin creates a **history.db** file in the first configured DATs
|
||||
folder. This file stores the information from the support files in a format
|
||||
suitable for rapid loading. It uses the SQLite3 database format.
|
10
docs/source/plugins/discord.rst
Normal file
10
docs/source/plugins/discord.rst
Normal file
@ -0,0 +1,10 @@
|
||||
.. _plugins-discord:
|
||||
|
||||
Discord Presence Plugin
|
||||
=======================
|
||||
|
||||
The Dicord presence plugin works with the Discord app for Windows, macOS or
|
||||
Linux to set your activity to show what you’re doing in MAME. The activity is
|
||||
set to *In menu* if you’re using the system or software selection menu,
|
||||
*Playing* if emulation is running, or *Paused* if emulation is paused. The
|
||||
details are set to show the system name and software description if applicable.
|
9
docs/source/plugins/dummy.rst
Normal file
9
docs/source/plugins/dummy.rst
Normal file
@ -0,0 +1,9 @@
|
||||
.. _plugins-dummy:
|
||||
|
||||
Dummy Test Plugin
|
||||
=================
|
||||
|
||||
This is a sample plugin that shows how to set necessary plugin metadata,
|
||||
register callbacks, and display a simple menu. It prints status messages if the
|
||||
:ref:`verbose <mame-commandline-verbose>` option is on, and it adds a **Dummy**
|
||||
option to the **Plugin Options** menu.
|
13
docs/source/plugins/gdbstub.rst
Normal file
13
docs/source/plugins/gdbstub.rst
Normal file
@ -0,0 +1,13 @@
|
||||
.. _plugins-gdbstub:
|
||||
|
||||
GDB Stub Plugin
|
||||
===============
|
||||
|
||||
The GDB stub plugin acts as a remote debugging server for the GNU debugger
|
||||
(GDB). This allows you to connect to MAME and debug supported systems using
|
||||
GDB. The plugin listens for connections on port 2159 on the IPv4 loopback
|
||||
address (127.0.0.1). Only Intel 80386 (i386) family processors are supported.
|
||||
|
||||
See the :ref:`debugger option <mame-commandline-debugger>` for another GDB
|
||||
remote debugging implementation with support for more CPUs and configurable
|
||||
listening ports.
|
19
docs/source/plugins/hiscore.rst
Normal file
19
docs/source/plugins/hiscore.rst
Normal file
@ -0,0 +1,19 @@
|
||||
.. _plugins-hiscore:
|
||||
|
||||
Hiscore Support Plugin
|
||||
======================
|
||||
|
||||
The hiscore support plugin saves and restores high scores for games that did not
|
||||
originally save high scores in non-volatile memory. Note that this plugin
|
||||
modifies the contents of memory directly with no coordination with the emulated
|
||||
software, and hence changes behaviour. This may have undesirable effects,
|
||||
including broken gameplay or causing the emulated software to crash.
|
||||
|
||||
The plugin includes a **hiscore.dat** file that contains the information on how
|
||||
to save and restore high scores for supported systems. This file must be kept
|
||||
up-to-date when system definitions change in MAME.
|
||||
|
||||
High score data is saved in the **hi** folder in the working directory. A file
|
||||
with a name corresponding the system short name (or ROM set name) with the
|
||||
extension ``.hi``. For example, high scores for the game Moon Cresta will be
|
||||
saved in the file **mooncrst.hi** in the **hi** folder.
|
72
docs/source/plugins/index.rst
Normal file
72
docs/source/plugins/index.rst
Normal file
@ -0,0 +1,72 @@
|
||||
.. _plugins:
|
||||
|
||||
Plugins
|
||||
=======
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
.. _plugins-intro:
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
MAME supports plugins that can provide additional functionality. Plugins
|
||||
have been written to communicate with external programs, play games
|
||||
automatically, display internal game structures like hitboxes, provide alternate
|
||||
user interfaces, and automatically test emulation. See :ref:`luaengine` for
|
||||
more information about MAME’s Lua API.
|
||||
|
||||
|
||||
.. _plugins-using:
|
||||
|
||||
Using plugins
|
||||
-------------
|
||||
|
||||
To enable plugins, you need to turn on the
|
||||
:ref:`plugins option <mame-commandline-plugins>`, and make sure the
|
||||
:ref:`pluginspath option <mame-commandline-pluginspath>` includes the folder
|
||||
where your plugins are stored. You can set the plugins option in an INI file
|
||||
or on the command line. You can set the pluginspath option by selecting
|
||||
**Configure Options** from the system selection menu, then selecting
|
||||
**Configure Directories**, and then selecting **Plugins** (you can also set it
|
||||
in an INI file or on the command line).
|
||||
|
||||
Many plugins need to store settings and/or data. The
|
||||
:ref:`homepath option <mame-commandline-homepath>` sets the folder where plugins
|
||||
should save data (defaults to the working directory). You can change this by
|
||||
selecting **Configure Options** from the system selection menu, thens selecting
|
||||
**Configure Directories**, and then selecting **Plugin Data**.
|
||||
|
||||
To turn individual plugins on or off, first make sure plugins are enabled, then
|
||||
select **Configure Options** from the system selection menu, and then select
|
||||
**Plugins**. You will need to completely exit MAME and start it again for
|
||||
changes to the enabled plugins to take effect. You can also use the
|
||||
:ref:`plugin option <mame-commandline-plugin>` on the command line, or change
|
||||
the settings in the **plugin.ini** file.
|
||||
|
||||
If an enabled plugin needs additional configuration, or if it needs to show
|
||||
information, a **Plugin Options** item will appear in the main menu (accessed by
|
||||
pressing **Tab** during emulation by default).
|
||||
|
||||
|
||||
.. _plugins-included:
|
||||
|
||||
Included plugins
|
||||
----------------
|
||||
|
||||
MAME includes several plugins providing useful functionality, and serving as
|
||||
sample code that you can use as a starting point when writing your own plugins.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
autofire
|
||||
console
|
||||
data
|
||||
discord
|
||||
dummy
|
||||
gdbstub
|
||||
hiscore
|
||||
layout
|
||||
timer
|
9
docs/source/plugins/layout.rst
Normal file
9
docs/source/plugins/layout.rst
Normal file
@ -0,0 +1,9 @@
|
||||
.. _plugins-layout:
|
||||
|
||||
Layout Plugin
|
||||
=============
|
||||
|
||||
When enabled, the layout plugin allows embedded Lua scripts in layout files to
|
||||
run. Built-in artwork for some machines and some external artwork packages can
|
||||
use Lua scripts to provide enhanced interactive features. See :ref:`layscript`
|
||||
for an introduction to layout file scripting.
|
20
docs/source/plugins/timer.rst
Normal file
20
docs/source/plugins/timer.rst
Normal file
@ -0,0 +1,20 @@
|
||||
Timer Plugin
|
||||
============
|
||||
|
||||
The timer plugin records the total time spent emulating each combination of a
|
||||
system and a software list item, as well as the number of times each combination
|
||||
has been launched. To see the statistics, bring up the main menu (press **Tab**
|
||||
during emulation by default), choose **Plugin Options**, and then choose
|
||||
**Timer**.
|
||||
|
||||
Note that this plugin records wall clock time, not emulated time. That is, it
|
||||
records the real time duration elapsed while the emulation is running, according
|
||||
to the host OS. This may be shorter than the elapsed emulated time if you turn
|
||||
off throttling or use MAME’s “fast forward” feature, or it may be longer than
|
||||
the elapsed emulated time if you pause the emulation of if the emulation is too
|
||||
demanding to run at full speed.
|
||||
|
||||
The statistics are stored in the file **timer.db** in the **timer** folder
|
||||
inside your plugin data folder (see the
|
||||
:ref:`homepath option <mame-commandline-homepath>`). The file is a SQLite3
|
||||
database.
|
@ -17,14 +17,15 @@ parameter animation, some things can only be done with scripting. MAME uses an
|
||||
event-based model. Scripts can supply functions that will be called after
|
||||
certain events, or when certain data is required.
|
||||
|
||||
Layout scripting requires the layout plugin to be enabled. For example, to run
|
||||
BWB Double Take with the Lua script in the layout enabled, you might use this
|
||||
command::
|
||||
Layout scripting requires the :ref:`layout plugin <plugins-layout>` to be
|
||||
enabled. For example, to run BWB Double Take with the Lua script in the layout
|
||||
enabled, you might use this command::
|
||||
|
||||
mame -plugins -plugin layout v4dbltak
|
||||
|
||||
If you may want to add the settings to enable the layout plugin to an INI file
|
||||
to save having to enable it every time you start a system.
|
||||
You may want to add the settings to enable the layout plugin to an INI file to
|
||||
save having to enable it every time you start a system. See :ref:`plugins` for
|
||||
more information about using plugins with MAME.
|
||||
|
||||
|
||||
.. _layscript-examples:
|
||||
|
@ -344,45 +344,13 @@ You can enable and configure the new autofire system with the following steps:
|
||||
* Choose **Plugins** near the bottom of the Settings menu.
|
||||
* Turn **Autofire plugin** on (use **Left**/**Right** or click the arrows to
|
||||
change options).
|
||||
* Exit MAME completely and start MAME again so the setting takes effect.
|
||||
|
||||
The setting will be automatically saved for future use.
|
||||
|
||||
Once you’re running a system of your choice, bring up the MAME menu (using the
|
||||
**Tab** key by default), select **Plugin Options***, and then select
|
||||
**Autofire**. From there you can select an existing autofire button to change
|
||||
|
||||
The **Input** is the button on the emulated system that you want to use autofire
|
||||
for. This may be set to any player button – typically you’ll it to
|
||||
*P1 Button 1* for games like Galaga, Alcon, and the like. The **Hotkey** is the
|
||||
button you press to use the autofire effect. This can be any combination MAME
|
||||
supports as a digital input.
|
||||
|
||||
**On frames** and **Off frames** are how long to leave the button pressed and
|
||||
released in terms of the system frame rate. Some systems do not read the inputs
|
||||
fast enough for 1 and 1 to be usable. You may need to try 2 and 2 (e.g. Alcon)
|
||||
or other combinations. Try fine-tuning these to your taste.
|
||||
|
||||
The autofire configuration for each system will be saved in a ``systemname.cfg``
|
||||
file (e.g. ``alcon.cfg``) inside the **autofire** folder in your plugin data
|
||||
folder. Each system will have its own configuration.
|
||||
|
||||
Note that if you set the autofire button to an input button that’s also assigned
|
||||
to one of MAME’s inputs for the running system, you may get unexpected results.
|
||||
Using Gradius as an example:
|
||||
|
||||
* If you set button 1 on your controller to fire, then set an autofire hotkey to
|
||||
button 1 as well, holding the button down to shoot will not trigger the
|
||||
autofire effect because the button never gets released, since you’re holding
|
||||
the non-autofire button 1. This will also happen if you set a different
|
||||
button as autofire (say, button 3 in this case), and hold button 1 down while
|
||||
holding button 3 down.
|
||||
* If you set button 3 on your controller to autofire and set button 3 to be
|
||||
powerup as well, you will trigger the powerup action every time you grab a
|
||||
powerup because the powerup button is also being held down along with the
|
||||
autofire button.
|
||||
|
||||
It is suggested you choose buttons for autofire hotkeys that are not in use for
|
||||
anything else in the current system.
|
||||
See :ref:`plugins-autofire` for more information about using the autofire
|
||||
plugin, or :ref:`plugins` for more information about using plugins with MAME in
|
||||
general.
|
||||
|
||||
|
||||
.. _gsync-freesync:
|
||||
|
@ -3,62 +3,77 @@ What is MAME
|
||||
|
||||
MAME is a multi-purpose emulation framework.
|
||||
|
||||
MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.
|
||||
MAME’s purpose is to preserve decades of software history. As
|
||||
electronic technology continues to rush forward, MAME prevents this
|
||||
important “vintage” software from being lost and forgotten. This is
|
||||
achieved by documenting the hardware and how it functions. The source
|
||||
code to MAME serves as this documentation. The fact that the software
|
||||
is usable serves primarily to validate the accuracy of the documentation
|
||||
(how else can you prove that you have recreated the hardware
|
||||
faithfully?). MAME, originally the Multiple Arcade Machine Emulator,
|
||||
absorbed sister-projects, including MESS (Multi-Emulator Super System)
|
||||
and AGEMAME (Arcade Gambling Extensions for MAME), so MAME now documents
|
||||
a wide variety of (mostly vintage) computers, video game consoles,
|
||||
calculators and gambling machines, in addition to the arcade video games
|
||||
that were its initial focus.
|
||||
|
||||
|
|
||||
| **MAME®**
|
||||
| **Copyright © 1997-2021 by Nicola Salmoria and the MAME team**
|
||||
| **MAME is a registered trademark owned by Gregory Ember**
|
||||
| **Copyright © 1997-2021 Nicola Salmoria and the MAME team**
|
||||
| **MAME is a registered trademark of Gregory Ember**
|
||||
|
|
||||
|
||||
|
||||
I. Purpose
|
||||
----------
|
||||
|
||||
MAME's main purpose is to be a reference to the inner workings of the
|
||||
emulated machines. This is done both for educational purposes and for
|
||||
MAME’s main purpose is to be a reference to the inner workings of the
|
||||
emulated machines. This is done both for educational purposes and for
|
||||
preservation purposes, in order to prevent historical software from
|
||||
disappearing forever once the hardware it runs on stops working. Of
|
||||
disappearing forever once the hardware it runs on stops working. Of
|
||||
course, in order to preserve the software and demonstrate that the
|
||||
emulated behavior matches the original, one must also be able to
|
||||
actually use the software. This is considered a nice side effect, and is
|
||||
not MAME's primary focus.
|
||||
actually use the software. This is considered a nice side effect, and
|
||||
is not MAME’s primary focus.
|
||||
|
||||
It is not our intention to infringe on any copyrights or patents on the
|
||||
original games. All of MAME's source code is either our own or freely
|
||||
available. To operate, the emulator requires images of the original
|
||||
ROMs, CDs, hard disks or other media from the machines, which must be
|
||||
provided by the user. No portions of the original game code are included
|
||||
in the executable.
|
||||
original software and systems. All of MAME’s source code is either our
|
||||
own or freely available. To operate, the emulator requires images of
|
||||
the original ROMs, CDs, hard disks or other media from the machines,
|
||||
which must be provided by the user. No portions of the original
|
||||
software are included in the MAME executable.
|
||||
|
||||
|
||||
II. Cost
|
||||
--------
|
||||
MAME is free. Its source code is free. The project as whole is
|
||||
distributed under the GNU General Public License, version 2 or later
|
||||
(GPL-2.0+), but most of code (including core functionality) is also
|
||||
available under the 3-clause BSD license (BSD-3-clause).
|
||||
|
||||
MAME is made available at no cost. Its source code is freely available.
|
||||
The project as whole is distributed under the terms of the GNU General
|
||||
Public License, version 2 or later (GPL-2.0+), but most of code,
|
||||
including core functionality, is also available under the terms of the
|
||||
more permissive 3-clause BSD license (BSD-3-clause).
|
||||
|
||||
|
||||
III. Software Image Files
|
||||
-------------------------
|
||||
|
||||
ROM, CD, hard disk and other media images are all copyrighted material.
|
||||
They cannot be distributed without the explicit permission of the
|
||||
copyright holder(s). They are not "abandonware", nor has any of the
|
||||
software supported by MAME passed out of copyright.
|
||||
They may not be lawfully distributed without the explicit permission of
|
||||
the copyright holder(s). They are not “abandonware”, nor has copyright
|
||||
expired on any of the software supported by MAME.
|
||||
|
||||
MAME is not intended to be used as a tool for mass copyright
|
||||
infringement. Therefore, it is strongly against the authors' wishes to
|
||||
infringement. Therefore, it is strongly against the authors’ wishes to
|
||||
sell, advertise, or link to resources that provide illegal copies of
|
||||
ROM, CD, hard disk or other media images.
|
||||
|
||||
|
||||
IV. Derivative Works
|
||||
--------------------
|
||||
|
||||
Because the name MAME is trademarked, you must abide by the rules set
|
||||
out for trademark usage if you wish to use "MAME" as part of the name
|
||||
your derivative work. In general, this means you must request
|
||||
out for trademark usage if you wish to use “MAME” as part of the name
|
||||
your derivative work. In general, this means you must request
|
||||
permission, which requires that you follow the guidelines above.
|
||||
|
||||
The version number of any derivative work should reflect the version
|
||||
@ -67,4 +82,6 @@ number of the MAME release from which it was was derived.
|
||||
|
||||
V. Official Contact Information
|
||||
-------------------------------
|
||||
For questions regarding the MAME license, trademark, or other usage, go to http://www.mamedev.org/
|
||||
|
||||
For questions regarding the MAME license, trademark, or other usage, see
|
||||
https://www.mamedev.org/legal.html
|
||||
|
@ -1,4 +1,4 @@
|
||||
-- to use this get the package from http://greatstone.free.fr/hi2txt/
|
||||
-- to use this get the package from https://greatstoneex.github.io/hi2txt-doc/
|
||||
-- extract the hi2txt.zip and place it in your history path
|
||||
|
||||
local dat = {}
|
||||
|
@ -1,11 +1,11 @@
|
||||
-- license:BSD-3-Clause
|
||||
-- copyright-holders:Miodrag Milanovic
|
||||
local exports = {}
|
||||
exports.name = "dummy"
|
||||
exports.version = "0.0.1"
|
||||
exports.description = "A dummy example"
|
||||
exports.license = "The BSD 3-Clause License"
|
||||
exports.author = { name = "Miodrag Milanovic" }
|
||||
local exports = {
|
||||
name = "dummy",
|
||||
version = "0.0.1",
|
||||
description = "A dummy example",
|
||||
license = "The BSD 3-Clause License",
|
||||
author = { name = "Miodrag Milanovic" }}
|
||||
|
||||
local dummy = exports
|
||||
|
||||
@ -19,7 +19,7 @@ function dummy.startplugin()
|
||||
end)
|
||||
|
||||
local function menu_populate()
|
||||
return {{ "This is a", "test", "off" }, { "Also a", "test", 0 }}
|
||||
return {{ "This is a", "test", "off" }, { "Also a", "test", "" }}
|
||||
end
|
||||
|
||||
local function menu_callback(index, event)
|
||||
|
Loading…
x
Reference in New Issue
Block a user