-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:
Vas Crabb 2021-10-24 05:48:05 +11:00
parent 3a11f91687
commit 669b1f6ade
21 changed files with 492 additions and 106 deletions

View File

@ -6,7 +6,6 @@ on:
- '.github/**'
- '3rdparty/**'
- 'hash/**'
- 'language/**'
- 'scripts/**'
- 'src/**'
- 'COPYING'
@ -16,7 +15,6 @@ on:
- '.github/**'
- '3rdparty/**'
- 'hash/**'
- 'language/**'
- 'scripts/**'
- 'src/**'
- 'COPYING'

View File

@ -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
View 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

View File

@ -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.

View File

@ -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.

View File

@ -22,6 +22,7 @@ MAME Documentation
usingmame/index
commandline/index
plugins/index
advanced/index
debugger/index

View 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
systems 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 youll 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 Konamis Gradius games, *P1 Button 2* is the primary fire
button.
Select **Hotkey** to set the input combination youll 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 theyre wired in parallel with MAMEs regular inputs.
This means that if you set the activation hotkey for an autofire button to a
button or key thats 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 youre 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 weapons
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 its often necessary to have a
non-autofire input for the primary fire button assigned to play effectively.

View File

@ -0,0 +1,9 @@
.. _plugins-console:
Console Plugin
==============
The console plugin provides functionality for MAMEs 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 MAMEs Lua API.

View 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 `MASHs 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.

View 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 youre doing in MAME. The activity is
set to *In menu* if youre 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.

View 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.

View 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.

View 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.

View 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 MAMEs 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

View 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.

View 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 MAMEs “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.

View File

@ -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:

View File

@ -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 youre 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 youll 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 thats also assigned
to one of MAMEs 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 youre 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:

View File

@ -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.
MAMEs 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
MAMEs 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 MAMEs 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 MAMEs 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

View File

@ -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 = {}

View File

@ -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)