summaryrefslogtreecommitdiffstatshomepage
path: root/docs/source/usingmame/frontends.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/usingmame/frontends.rst')
-rw-r--r--docs/source/usingmame/frontends.rst53
1 files changed, 39 insertions, 14 deletions
diff --git a/docs/source/usingmame/frontends.rst b/docs/source/usingmame/frontends.rst
index 88ef7052a65..24ddf05ad75 100644
--- a/docs/source/usingmame/frontends.rst
+++ b/docs/source/usingmame/frontends.rst
@@ -1,20 +1,45 @@
.. _frontends:
-Frontends
-=========
+Front-ends
+==========
-There are a number of third party tools for MAME to make system and software selection simpler. These tools are called "Frontends", and there are far too many to list conclusively here. Some are free, some are commercial-- caveat emptor. Some older frontends predate the merging of MAME and MESS and do not support the additional console, handheld, etc functionality that MAME inherited from MESS.
+A number of third party tools for MAME to make system and software selection
+simpler are available. These tools are called “front-ends”, and there are far
+too many to list exhaustively here. Some are free, some are commercial –
+caveat emptor. Some older front-ends predate the merging of MAME and MESS and
+do not support the additional console, hand-held, and computer functionality
+inherited from MESS.
-This following list is not an endorsement of any of these frontends by the MAME team, but simply showing a number of commonly used free frontends as a good starting point to begin from.
+This following list is not an endorsement of any of these front-ends by the MAME
+team. It simply shows a number of commonly used free front-ends to provide a
+starting point.
-| QMC2 (multiple platforms)
-| Download: http://qmc2.batcom-it.net/
-|
-| IV/Play (Microsoft Windows)
-| Download: http://www.mameui.info/
-|
-| EmuLoader (Microsoft Windows)
-| Download: http://emuloader.mameworld.info/
-|
+`QMC2 <http://qmc2.batcom-it.net/>`__ (multiple platforms)
+ Provides a graphical interface for configuring many of MAME’s settings and
+ features. Also includes ROM management and media auditing features.
+ Written in C++ using the Qt toolkit, the
+ `source code is on SourceForge <https://sourceforge.net/projects/qmc2/>`__.
+`Negatron <http://negatron.net/>`__ (multiple platforms)
+ Negatron emphasises features for configuring emulated computers and
+ consoles. Written in Java, the
+ `source code is on GitHub <https://github.com/xinyingho/Negatron>`__.
+`BletchMAME <https://www.bletchmame.org/>`__ (multiple platforms)
+ BletchMAME takes advantage of MAME’s Lua scripting interface to integrate
+ tightly and effectively replace MAME’s internal user interface. It has
+ many useful features for home computer emulation. Written in C++, the
+ `source code is on GitHub <https://github.com/npwoods/bletchmame>`__.
+`IV/Play <http://www.mameui.info/>`__ (Microsoft Windows)
+ A simple Windows program for launching systems in MAME. Written in C#, the
+ `souce code is on GitHub <https://github.com/Mataniko/IV-Play>`__.
+`EmuLoader <http://emuloader.mameworld.info/>`__ (Microsoft Windows)
+ EmuLoader provides a Windows interface for launching systems in multiple
+ emulators, including MAME, Supermodel and DEMUL. Written in Delphi Pascal,
+ the source code is available
+ `on the download page <https://emuloader.mameworld.info/downloads.htm>`__.
+`Retrofire <https://e2j.net/downloads/>`__ (Japanese, Microsoft Windows)
+ Provides a Japanese-language graphical interface for launching systems or
+ software in MAME.
-The MAME team will not provide support for issues with frontends. For support, we suggest contacting the frontend author or trying any of the popular MAME-friendly forums on the internet.
+The MAME team will not provide support for issues with front-ends. For support,
+we suggest contacting the front-end author or asking on one of the popular
+MAME-friendly forums on the Internet.
d { color: #8f5902; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ .highlight .se { color: #4e9a06 } /* Literal.String.Escape */ .highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ .highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ .highlight .sx { color: #4e9a06 } /* Literal.String.Other */ .highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ .highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ .highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ .highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #000000 } /* Name.Function.Magic */ .highlight .vc { color: #000000 } /* Name.Variable.Class */ .highlight .vg { color: #000000 } /* Name.Variable.Global */ .highlight .vi { color: #000000 } /* Name.Variable.Instance */ .highlight .vm { color: #000000 } /* Name.Variable.Magic */ .highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */
/*********************************************************************

    harddriv.h

    Interface to the CHD code

*********************************************************************/

#ifndef HARDDRIV_H
#define HARDDRIV_H

#include "image.h"
#include "harddisk.h"

/***************************************************************************
    TYPE DEFINITIONS
***************************************************************************/

// ======================> harddisk_interface

struct harddisk_interface
{
	device_image_load_func		m_device_image_load;
	device_image_unload_func	m_device_image_unload;
	const char *					m_interface;
	device_image_display_info_func	m_device_displayinfo;
};

// ======================> harddisk_image_device

class harddisk_image_device :	public device_t,
								public harddisk_interface,
								public device_image_interface
{
public:
	// construction/destruction
	harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
	virtual ~harddisk_image_device();

	// image-level overrides
	virtual bool call_load();
	virtual bool call_create(int create_format, option_resolution *create_args);
	virtual void call_unload();
	virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); }
	virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry) { load_software_part_region(this, swlist, swname, start_entry ); return TRUE; }

	virtual iodevice_t image_type() const { return IO_HARDDISK; }

	virtual bool is_readable()  const { return 1; }
	virtual bool is_writeable() const { return 1; }
	virtual bool is_creatable() const { return 0; }
	virtual bool must_be_loaded() const { return 0; }
	virtual bool is_reset_on_load() const { return 0; }
	virtual const char *image_interface() const { return m_interface; }
	virtual const char *file_extensions() const { return "chd,hd"; }
	virtual const option_guide *create_option_guide() const;

	// specific implementation
	hard_disk_file *get_hard_disk_file() { return m_hard_disk_handle; }
	chd_file *get_chd_file();

protected:
	// device-level overrides
    virtual void device_config_complete();
	virtual void device_start();

	int internal_load_hd(const char *metadata);

	chd_file		*m_chd;
	hard_disk_file	*m_hard_disk_handle;

	image_device_format m_format;
};

// device type definition
extern const device_type HARDDISK;

/***************************************************************************
    DEVICE CONFIGURATION MACROS
***************************************************************************/

#define MCFG_HARDDISK_ADD(_tag) \
	MCFG_DEVICE_ADD(_tag, HARDDISK, 0) \

#define MCFG_HARDDISK_CONFIG_ADD(_tag,_config) \
	MCFG_DEVICE_ADD(_tag, HARDDISK, 0) \
	MCFG_DEVICE_CONFIG(_config)	\

#endif /* HARDDRIV_H */