mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Move per emulator constants info into separate class [Miodrag Milanovic]
out of log: This way it is possible to link two or more separated executables with different copyright/xml out/name/... in one compilation, just one step closer...
This commit is contained in:
parent
8e23f11ae2
commit
be8bd3552f
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4109,6 +4109,7 @@ src/mame/machine/znsec.c svneol=native#text/plain
|
||||
src/mame/machine/znsec.h svneol=native#text/plain
|
||||
src/mame/machine/zs01.c svneol=native#text/plain
|
||||
src/mame/machine/zs01.h svneol=native#text/plain
|
||||
src/mame/mame.c svneol=native#text/plain
|
||||
src/mame/mame.lst svneol=native#text/plain
|
||||
src/mame/mame.mak svneol=native#text/plain
|
||||
src/mame/mame_dev.lst svneol=native#text/plain
|
||||
|
3
makefile
3
makefile
@ -582,6 +582,7 @@ LIBOCORE = $(OBJ)/libocore.a
|
||||
LIBOSD = $(OBJ)/libosd.a
|
||||
|
||||
VERSIONOBJ = $(OBJ)/version.o
|
||||
EMUINFOOBJ = $(OBJ)/$(TARGET)/$(TARGET).o
|
||||
DRIVLISTSRC = $(OBJ)/drivlist.c
|
||||
DRIVLISTOBJ = $(OBJ)/drivlist.o
|
||||
DEVLISTSRC = $(OBJ)/devlist.c
|
||||
@ -727,7 +728,7 @@ ifndef EXECUTABLE_DEFINED
|
||||
# always recompile the version string
|
||||
$(VERSIONOBJ): $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(LIBOCORE) $(RESFILE)
|
||||
|
||||
$(EMULATOR): $(VERSIONOBJ) $(DRIVLISTOBJ) $(DEVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBDASM) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(ZLIB) $(LIBOCORE) $(RESFILE)
|
||||
$(EMULATOR): $(VERSIONOBJ) $(EMUINFOOBJ) $(DRIVLISTOBJ) $(DEVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBDASM) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(ZLIB) $(LIBOCORE) $(RESFILE)
|
||||
@echo Linking $@...
|
||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $^ $(LIBS) -o $@
|
||||
ifeq ($(TARGETOS),win32)
|
||||
|
@ -268,7 +268,7 @@ int cli_frontend::execute(int argc, char **argv)
|
||||
|
||||
// print them out
|
||||
fprintf(stderr, "\n\"%s\" approximately matches the following\n"
|
||||
"supported " GAMESNOUN " (best match first):\n\n", m_options.system_name());
|
||||
"supported %s (best match first):\n\n", m_options.system_name(),emulator_info::get_gamesnoun());
|
||||
for (int matchnum = 0; matchnum < ARRAY_LENGTH(matches); matchnum++)
|
||||
if (matches[matchnum] != -1)
|
||||
fprintf(stderr, "%-18s%s\n", drivlist.driver(matches[matchnum]).name, drivlist.driver(matches[matchnum]).description);
|
||||
@ -1300,7 +1300,8 @@ void cli_frontend::execute_commands(const char *exename)
|
||||
if (strcmp(m_options.command(), CLICOMMAND_SHOWUSAGE) == 0)
|
||||
{
|
||||
astring helpstring;
|
||||
mame_printf_info(USAGE "\n\nOptions:\n%s", exename, GAMENOUN, m_options.output_help(helpstring));
|
||||
emulator_info::printf_usage(exename, emulator_info::get_gamenoun());
|
||||
mame_printf_info("\n\nOptions:\n%s", m_options.output_help(helpstring));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1322,8 +1323,8 @@ void cli_frontend::execute_commands(const char *exename)
|
||||
{
|
||||
// attempt to open the output file
|
||||
emu_file file(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
|
||||
if (file.open(CONFIGNAME ".ini") != FILERR_NONE)
|
||||
throw emu_fatalerror("Unable to create file " CONFIGNAME ".ini\n");
|
||||
if (file.open(emulator_info::get_configname(), ".ini") != FILERR_NONE)
|
||||
throw emu_fatalerror("Unable to create file %s.ini\n",emulator_info::get_configname());
|
||||
|
||||
// generate the updated INI
|
||||
astring initext;
|
||||
@ -1386,15 +1387,16 @@ void cli_frontend::execute_commands(const char *exename)
|
||||
|
||||
void cli_frontend::display_help()
|
||||
{
|
||||
mame_printf_info(APPLONGNAME " v%s - " FULLLONGNAME "\n"
|
||||
COPYRIGHT_INFO "\n\n", build_version);
|
||||
mame_printf_info("%s\n", DISCLAIMER);
|
||||
mame_printf_info(USAGE "\n\n"
|
||||
" " APPNAME " -showusage for a brief list of options\n"
|
||||
" " APPNAME " -showconfig for a list of configuration options\n"
|
||||
" " APPNAME " -listmedia for a full list of supported media\n"
|
||||
" " APPNAME " -createconfig to create a " CONFIGNAME ".ini\n\n"
|
||||
"For usage instructions, please consult the files config.txt and windows.txt.\n",APPNAME,GAMENOUN);
|
||||
mame_printf_info("%s v%s - %s\n%s\n\n", emulator_info::get_applongname(),build_version,emulator_info::get_fulllongname(),emulator_info::get_copyright_info());
|
||||
mame_printf_info("%s\n", emulator_info::get_disclaimer());
|
||||
emulator_info::printf_usage(emulator_info::get_appname(),emulator_info::get_gamenoun());
|
||||
mame_printf_info("\n\n"
|
||||
" %s -showusage for a brief list of options\n"
|
||||
" %s -showconfig for a list of configuration options\n"
|
||||
" %s -listmedia for a full list of supported media\n"
|
||||
" %s -createconfig to create a %s.ini\n\n"
|
||||
"For usage instructions, please consult the files config.txt and windows.txt.\n",emulator_info::get_appname(),
|
||||
emulator_info::get_appname(),emulator_info::get_appname(),emulator_info::get_appname(),emulator_info::get_configname());
|
||||
}
|
||||
|
||||
|
||||
|
@ -386,8 +386,8 @@ void emu_options::parse_standard_inis(astring &error_string)
|
||||
|
||||
// parse the INI file defined by the platform (e.g., "mame.ini")
|
||||
// we do this twice so that the first file can change the INI path
|
||||
parse_one_ini(CONFIGNAME, OPTION_PRIORITY_MAME_INI);
|
||||
parse_one_ini(CONFIGNAME, OPTION_PRIORITY_MAME_INI, &error_string);
|
||||
parse_one_ini(emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI);
|
||||
parse_one_ini(emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI, &error_string);
|
||||
|
||||
// debug mode: parse "debug.ini" as well
|
||||
if (debug())
|
||||
|
@ -53,21 +53,21 @@
|
||||
|
||||
// DTD string describing the data
|
||||
const char info_xml_creator::s_dtd_string[] =
|
||||
"<!DOCTYPE " XML_ROOT " [\n"
|
||||
"<!ELEMENT " XML_ROOT " (" XML_TOP "+)>\n"
|
||||
"\t<!ATTLIST " XML_ROOT " build CDATA #IMPLIED>\n"
|
||||
"\t<!ATTLIST " XML_ROOT " debug (yes|no) \"no\">\n"
|
||||
"\t<!ATTLIST " XML_ROOT " mameconfig CDATA #REQUIRED>\n"
|
||||
"\t<!ELEMENT " XML_TOP " (description, year?, manufacturer?, biosset*, rom*, disk*, device_ref*, sample*, chip*, display*, sound?, input?, dipswitch*, configuration*, adjuster*, driver?, device*, slot*, softwarelist*, ramoption*)>\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " name CDATA #REQUIRED>\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " sourcefile CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " isbios (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " isdevice (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " ismechanical (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " runnable (yes|no) \"yes\">\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " cloneof CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " romof CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST " XML_TOP " sampleof CDATA #IMPLIED>\n"
|
||||
"<!DOCTYPE __XML_ROOT__ [\n"
|
||||
"<!ELEMENT __XML_ROOT__ (__XML_TOP__+)>\n"
|
||||
"\t<!ATTLIST __XML_ROOT__ build CDATA #IMPLIED>\n"
|
||||
"\t<!ATTLIST __XML_ROOT__ debug (yes|no) \"no\">\n"
|
||||
"\t<!ATTLIST __XML_ROOT__ mameconfig CDATA #REQUIRED>\n"
|
||||
"\t<!ELEMENT __XML_TOP__ (description, year?, manufacturer?, biosset*, rom*, disk*, device_ref*, sample*, chip*, display*, sound?, input?, dipswitch*, configuration*, adjuster*, driver?, device*, slot*, softwarelist*, ramoption*)>\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ name CDATA #REQUIRED>\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ sourcefile CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ isbios (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ isdevice (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ ismechanical (yes|no) \"no\">\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ runnable (yes|no) \"yes\">\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ cloneof CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ romof CDATA #IMPLIED>\n"
|
||||
"\t\t<!ATTLIST __XML_TOP__ sampleof CDATA #IMPLIED>\n"
|
||||
"\t\t<!ELEMENT description (#PCDATA)>\n"
|
||||
"\t\t<!ELEMENT year (#PCDATA)>\n"
|
||||
"\t\t<!ELEMENT manufacturer (#PCDATA)>\n"
|
||||
@ -214,16 +214,21 @@ void info_xml_creator::output(FILE *out)
|
||||
|
||||
// output the DTD
|
||||
fprintf(m_output, "<?xml version=\"1.0\"?>\n");
|
||||
fprintf(m_output, "%s\n\n", s_dtd_string);
|
||||
astring dtd(s_dtd_string);
|
||||
dtd.replace(0,"__XML_ROOT__", emulator_info::get_xml_root());
|
||||
dtd.replace(0,"__XML_TOP__", emulator_info::get_xml_top());
|
||||
|
||||
fprintf(m_output, "%s\n\n", dtd.cstr());
|
||||
|
||||
// top-level tag
|
||||
fprintf(m_output, "<" XML_ROOT " build=\"%s\" debug=\""
|
||||
fprintf(m_output, "<%s build=\"%s\" debug=\""
|
||||
#ifdef MAME_DEBUG
|
||||
"yes"
|
||||
#else
|
||||
"no"
|
||||
#endif
|
||||
"\" mameconfig=\"%d\">\n",
|
||||
emulator_info::get_xml_root(),
|
||||
xml_normalize_string(build_version),
|
||||
CONFIG_VERSION
|
||||
);
|
||||
@ -240,7 +245,7 @@ void info_xml_creator::output(FILE *out)
|
||||
global_free(m_device_used);
|
||||
|
||||
// close the top level tag
|
||||
fprintf(m_output, "</" XML_ROOT ">\n");
|
||||
fprintf(m_output, "</%s>\n",emulator_info::get_xml_root());
|
||||
}
|
||||
|
||||
|
||||
@ -264,7 +269,7 @@ void info_xml_creator::output_devices()
|
||||
dev->config_complete();
|
||||
|
||||
// print the header and the game name
|
||||
fprintf(m_output, "\t<" XML_TOP);
|
||||
fprintf(m_output, "\t<%s",emulator_info::get_xml_top());
|
||||
fprintf(m_output, " name=\"%s\"", xml_normalize_string(dev->shortname()));
|
||||
fprintf(m_output, " isdevice=\"yes\"");
|
||||
fprintf(m_output, " runnable=\"no\"");
|
||||
@ -277,7 +282,7 @@ void info_xml_creator::output_devices()
|
||||
output_rom(dev);
|
||||
|
||||
// close the topmost tag
|
||||
fprintf(m_output, "\t</" XML_TOP ">\n");
|
||||
fprintf(m_output, "\t</%s>\n",emulator_info::get_xml_top());
|
||||
global_free(dev);
|
||||
}
|
||||
}
|
||||
@ -303,7 +308,7 @@ void info_xml_creator::output_one()
|
||||
input_port_list_init(*device, portlist, errors);
|
||||
|
||||
// print the header and the game name
|
||||
fprintf(m_output, "\t<" XML_TOP);
|
||||
fprintf(m_output, "\t<%s",emulator_info::get_xml_top());
|
||||
fprintf(m_output, " name=\"%s\"", xml_normalize_string(driver.name));
|
||||
|
||||
// strip away any path information from the source_file and output it
|
||||
@ -364,7 +369,7 @@ void info_xml_creator::output_one()
|
||||
output_ramoptions();
|
||||
|
||||
// close the topmost tag
|
||||
fprintf(m_output, "\t</" XML_TOP ">\n");
|
||||
fprintf(m_output, "\t</%s>\n",emulator_info::get_xml_top());
|
||||
}
|
||||
|
||||
//------------------------------------------------
|
||||
|
@ -3802,7 +3802,7 @@ static time_t playback_init(running_machine &machine)
|
||||
|
||||
/* verify the header against the current game */
|
||||
if (memcmp(machine.system().name, header + 0x14, strlen(machine.system().name) + 1) != 0)
|
||||
mame_printf_info("Input file is for " GAMENOUN " '%s', not for current " GAMENOUN " '%s'\n", header + 0x14, machine.system().name);
|
||||
mame_printf_info("Input file is for %s '%s', not for current %s '%s'\n", emulator_info::get_gamenoun(), header + 0x14, emulator_info::get_gamenoun(), machine.system().name);
|
||||
|
||||
/* enable compression */
|
||||
portdata->playback_file->compress(FCOMPRESS_MEDIUM);
|
||||
@ -3999,7 +3999,7 @@ static void record_init(running_machine &machine)
|
||||
header[0x10] = INP_HEADER_MAJVERSION;
|
||||
header[0x11] = INP_HEADER_MINVERSION;
|
||||
strcpy((char *)header + 0x14, machine.system().name);
|
||||
sprintf((char *)header + 0x20, APPNAME " %s", build_version);
|
||||
sprintf((char *)header + 0x20, "%s %s", emulator_info::get_appname(), build_version);
|
||||
|
||||
/* write it */
|
||||
portdata->record_file->write(header, sizeof(header));
|
||||
|
@ -42,60 +42,6 @@ enum
|
||||
};
|
||||
|
||||
|
||||
// MESS vs. MAME abstractions
|
||||
#ifndef MESS
|
||||
#define APPNAME "MAME"
|
||||
#define APPNAME_LOWER "mame"
|
||||
#define CONFIGNAME "mame"
|
||||
#define APPLONGNAME "M.A.M.E."
|
||||
#define FULLLONGNAME "Multiple Arcade Machine Emulator"
|
||||
#define CAPGAMENOUN "GAME"
|
||||
#define CAPSTARTGAMENOUN "Game"
|
||||
#define GAMENOUN "game"
|
||||
#define GAMESNOUN "games"
|
||||
#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttp://mamedev.org"
|
||||
#define COPYRIGHT_INFO "Copyright Nicola Salmoria and the MAME team"
|
||||
#define DISCLAIMER "MAME is an emulator: it reproduces, more or less faithfully, the behaviour of\n" \
|
||||
"several arcade machines. But hardware is useless without software, so an image\n" \
|
||||
"of the ROMs which run on that hardware is required. Such ROMs, like any other\n" \
|
||||
"commercial software, are copyrighted material and it is therefore illegal to\n" \
|
||||
"use them if you don't own the original arcade machine. Needless to say, ROMs\n" \
|
||||
"are not distributed together with MAME. Distribution of MAME together with ROM\n" \
|
||||
"images is a violation of copyright law and should be promptly reported to the\n" \
|
||||
"authors so that appropriate legal action can be taken.\n"
|
||||
#define USAGE "Usage: %s [%s] [options]"
|
||||
#define XML_ROOT "mame"
|
||||
#define XML_TOP "game"
|
||||
#define STATE_MAGIC_NUM 'M', 'A', 'M', 'E', 'S', 'A', 'V', 'E'
|
||||
#else
|
||||
#define APPNAME "MESS"
|
||||
#define APPNAME_LOWER "mess"
|
||||
#define CONFIGNAME "mess"
|
||||
#define APPLONGNAME "M.E.S.S."
|
||||
#define FULLLONGNAME "Multi Emulator Super System"
|
||||
#define CAPGAMENOUN "SYSTEM"
|
||||
#define CAPSTARTGAMENOUN "System"
|
||||
#define GAMENOUN "system"
|
||||
#define GAMESNOUN "systems"
|
||||
#define COPYRIGHT "Copyright the MESS team\nhttp://mess.org"
|
||||
#define COPYRIGHT_INFO "Copyright the MESS team\n\n" \
|
||||
"MESS is based on MAME Source code\n" \
|
||||
"Copyright Nicola Salmoria and the MAME team"
|
||||
#define DISCLAIMER "MESS is an emulator: it reproduces, more or less faithfully, the behaviour of\n"\
|
||||
"several computer and console systems. But hardware is useless without software\n" \
|
||||
"so a file dump of the ROM, cartridges, discs, and cassettes which run on that\n" \
|
||||
"hardware is required. Such files, like any other commercial software, are\n" \
|
||||
"copyrighted material and it is therefore illegal to use them if you don't own\n" \
|
||||
"the original media from which the files are derived. Needless to say, these\n" \
|
||||
"files are not distributed together with MESS. Distribution of MESS together\n" \
|
||||
"with these files is a violation of copyright law and should be promptly\n" \
|
||||
"reported to the authors so that appropriate legal action can be taken.\n"
|
||||
#define USAGE "Usage: %s [%s] [media] [software] [options]"
|
||||
#define XML_ROOT "mess"
|
||||
#define XML_TOP "machine"
|
||||
#define STATE_MAGIC_NUM 'M', 'E', 'S', 'S', 'S', 'A', 'V', 'E'
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -105,7 +51,30 @@ enum
|
||||
// output channel callback
|
||||
typedef void (*output_callback_func)(void *param, const char *format, va_list argptr);
|
||||
|
||||
class emulator_info
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
emulator_info() {};
|
||||
|
||||
static const char * get_appname();
|
||||
static const char * get_appname_lower();
|
||||
static const char * get_configname();
|
||||
static const char * get_applongname();
|
||||
static const char * get_fulllongname();
|
||||
static const char * get_capgamenoun();
|
||||
static const char * get_capstartgamenoun();
|
||||
static const char * get_gamenoun();
|
||||
static const char * get_gamesnoun();
|
||||
static const char * get_copyright();
|
||||
static const char * get_copyright_info();
|
||||
static const char * get_disclaimer();
|
||||
static const char * get_usage();
|
||||
static const char * get_xml_root();
|
||||
static const char * get_xml_top();
|
||||
static const char * get_state_magic_num();
|
||||
static void printf_usage(const char *par1, const char *par2);
|
||||
};
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL VARIABLES
|
||||
|
@ -553,13 +553,15 @@ static void display_rom_load_results(rom_load_data *romdata)
|
||||
{
|
||||
/* create the error message and exit fatally */
|
||||
mame_printf_error("%s", romdata->errorstring.cstr());
|
||||
fatalerror_exitcode(romdata->machine(), MAMERR_MISSING_FILES, "ERROR: required files are missing, the "GAMENOUN" cannot be run.");
|
||||
fatalerror_exitcode(romdata->machine(), MAMERR_MISSING_FILES, "ERROR: required files are missing, the %s cannot be run.",emulator_info::get_gamenoun());
|
||||
}
|
||||
|
||||
/* if we had warnings, output them, but continue */
|
||||
if ((romdata-> warnings) || (romdata->knownbad))
|
||||
{
|
||||
romdata->errorstring.cat("WARNING: the "GAMENOUN" might not run correctly.");
|
||||
romdata->errorstring.cat("WARNING: the ");
|
||||
romdata->errorstring.cat(emulator_info::get_gamenoun());
|
||||
romdata->errorstring.cat(" might not run correctly.");
|
||||
mame_printf_warning("%s\n", romdata->errorstring.cstr());
|
||||
}
|
||||
}
|
||||
|
@ -80,13 +80,6 @@ enum
|
||||
};
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
const char save_manager::s_magic_num[8] = { STATE_MAGIC_NUM };
|
||||
|
||||
//**************************************************************************
|
||||
// INITIALIZATION
|
||||
//**************************************************************************
|
||||
@ -244,7 +237,7 @@ save_error save_manager::check_file(running_machine &machine, emu_file &file, co
|
||||
if (file.read(header, sizeof(header)) != sizeof(header))
|
||||
{
|
||||
if (errormsg != NULL)
|
||||
(*errormsg)("Could not read " APPNAME " save file header");
|
||||
(*errormsg)("Could not read %s save file header",emulator_info::get_appname());
|
||||
return STATERR_READ_ERROR;
|
||||
}
|
||||
|
||||
@ -311,7 +304,7 @@ save_error save_manager::write_file(emu_file &file)
|
||||
|
||||
// generate the header
|
||||
UINT8 header[HEADER_SIZE];
|
||||
memcpy(&header[0], s_magic_num, 8);
|
||||
memcpy(&header[0], emulator_info::get_state_magic_num(), 8);
|
||||
header[8] = SAVE_VERSION;
|
||||
header[9] = NATIVE_ENDIAN_VALUE_LE_BE(0, SS_MSB_FIRST);
|
||||
strncpy((char *)&header[0x0a], machine().system().name, 0x1c - 0x0a);
|
||||
@ -385,10 +378,10 @@ save_error save_manager::validate_header(const UINT8 *header, const char *gamena
|
||||
void (CLIB_DECL *errormsg)(const char *fmt, ...), const char *error_prefix)
|
||||
{
|
||||
// check magic number
|
||||
if (memcmp(header, s_magic_num, 8))
|
||||
if (memcmp(header, emulator_info::get_state_magic_num(), 8))
|
||||
{
|
||||
if (errormsg != NULL)
|
||||
(*errormsg)("%sThis is not a " APPNAME " save file", error_prefix);
|
||||
(*errormsg)("%sThis is not a %s save file", error_prefix,emulator_info::get_appname());
|
||||
return STATERR_INVALID_HEADER;
|
||||
}
|
||||
|
||||
|
@ -238,8 +238,6 @@ private:
|
||||
simple_list<state_entry> m_entry_list; // list of reigstered entries
|
||||
simple_list<state_callback> m_presave_list; // list of pre-save functions
|
||||
simple_list<state_callback> m_postload_list; // list of post-load functions
|
||||
|
||||
static const char s_magic_num[8]; // magic number for header
|
||||
};
|
||||
|
||||
|
||||
|
@ -1030,7 +1030,7 @@ void screen_device::finalize_burnin()
|
||||
char text[256];
|
||||
|
||||
// add two text entries describing the image
|
||||
sprintf(text, APPNAME " %s", build_version);
|
||||
sprintf(text,"%s %s", emulator_info::get_appname(), build_version);
|
||||
png_add_text(&pnginfo, "Software", text);
|
||||
sprintf(text, "%s %s", machine().system().manufacturer, machine().system().description);
|
||||
png_add_text(&pnginfo, "System", text);
|
||||
|
34
src/emu/ui.c
34
src/emu/ui.c
@ -917,7 +917,9 @@ static astring &warnings_string(running_machine &machine, astring &string)
|
||||
/* add a warning if any ROMs were loaded with warnings */
|
||||
if (rom_load_warnings(machine) > 0)
|
||||
{
|
||||
string.cat("One or more ROMs/CHDs for this game are incorrect. The " GAMENOUN " may not run correctly.\n");
|
||||
string.cat("One or more ROMs/CHDs for this game are incorrect. The ");
|
||||
string.cat(emulator_info::get_gamenoun());
|
||||
string.cat(" may not run correctly.\n");
|
||||
if (machine.system().flags & WARNING_FLAGS)
|
||||
string.cat("\n");
|
||||
}
|
||||
@ -925,12 +927,16 @@ static astring &warnings_string(running_machine &machine, astring &string)
|
||||
/* if we have at least one warning flag, print the general header */
|
||||
if ((machine.system().flags & WARNING_FLAGS) || rom_load_knownbad(machine) > 0)
|
||||
{
|
||||
string.cat("There are known problems with this " GAMENOUN "\n\n");
|
||||
string.cat("There are known problems with this ");
|
||||
string.cat(emulator_info::get_gamenoun());
|
||||
string.cat("\n\n");
|
||||
|
||||
/* add a warning if any ROMs are flagged BAD_DUMP/NO_DUMP */
|
||||
if (rom_load_knownbad(machine) > 0)
|
||||
string.cat("One or more ROMs/CHDs for this " GAMENOUN " have not been correctly dumped.\n");
|
||||
|
||||
if (rom_load_knownbad(machine) > 0) {
|
||||
string.cat("One or more ROMs/CHDs for this ");
|
||||
string.cat(emulator_info::get_gamenoun());
|
||||
string.cat(" have not been correctly dumped.\n");
|
||||
}
|
||||
/* add one line per warning flag */
|
||||
if (input_machine_has_keyboard(machine))
|
||||
string.cat("The keyboard emulation may not be 100% accurate.\n");
|
||||
@ -957,12 +963,20 @@ static astring &warnings_string(running_machine &machine, astring &string)
|
||||
/* add the strings for these warnings */
|
||||
if (machine.system().flags & GAME_UNEMULATED_PROTECTION)
|
||||
string.cat("The game has protection which isn't fully emulated.\n");
|
||||
if (machine.system().flags & GAME_NOT_WORKING)
|
||||
string.cat("\nTHIS " CAPGAMENOUN " DOESN'T WORK. The emulation for this game is not yet complete. "
|
||||
if (machine.system().flags & GAME_NOT_WORKING) {
|
||||
string.cat("\nTHIS ");
|
||||
string.cat(emulator_info::get_capgamenoun());
|
||||
string.cat(" DOESN'T WORK. The emulation for this game is not yet complete. "
|
||||
"There is nothing you can do to fix this problem except wait for the developers to improve the emulation.\n");
|
||||
if (machine.system().flags & GAME_MECHANICAL)
|
||||
string.cat("\nCertain elements of this " GAMENOUN " cannot be emulated as it requires actual physical interaction or consists of mechanical devices. "
|
||||
"It is not possible to fully play this " GAMENOUN ".\n");
|
||||
}
|
||||
if (machine.system().flags & GAME_MECHANICAL) {
|
||||
string.cat("\nCertain elements of this ");
|
||||
string.cat(emulator_info::get_gamenoun());
|
||||
string.cat(" cannot be emulated as it requires actual physical interaction or consists of mechanical devices. "
|
||||
"It is not possible to fully play this ");
|
||||
string.cat(emulator_info::get_gamenoun());
|
||||
string.cat(".\n");
|
||||
}
|
||||
|
||||
/* find the parent of this driver */
|
||||
driver_enumerator drivlist(machine.options());
|
||||
|
@ -250,7 +250,6 @@ static render_texture *hilight_texture;
|
||||
static render_texture *arrow_texture;
|
||||
|
||||
static const char priortext[] = "Return to Prior Menu";
|
||||
static const char backtext[] = "Return to " CAPSTARTGAMENOUN;
|
||||
static const char exittext[] = "Exit";
|
||||
|
||||
// temporary hack until this is C++-ified
|
||||
@ -521,10 +520,12 @@ void ui_menu_reset(ui_menu *menu, ui_menu_reset_options options)
|
||||
menu->numitems = 0;
|
||||
menu->visitems = 0;
|
||||
menu->selected = 0;
|
||||
astring backtext;
|
||||
backtext.printf("Return to %s",emulator_info::get_capstartgamenoun());
|
||||
|
||||
/* add an item to return */
|
||||
if (menu->parent == NULL)
|
||||
ui_menu_item_append(menu, backtext, NULL, 0, NULL);
|
||||
ui_menu_item_append(menu, backtext.cstr(), NULL, 0, NULL);
|
||||
else if (menu->parent->handler == menu_quit_game)
|
||||
ui_menu_item_append(menu, exittext, NULL, 0, NULL);
|
||||
else
|
||||
@ -1638,7 +1639,7 @@ static void menu_main_populate(running_machine &machine, ui_menu *menu, void *st
|
||||
int has_configs = FALSE;
|
||||
int has_analog = FALSE;
|
||||
int has_dips = FALSE;
|
||||
|
||||
astring menu_text;
|
||||
/* scan the input port array to see what options we need to enable */
|
||||
for (port = machine.m_portlist.first(); port != NULL; port = port->next())
|
||||
for (field = port->fieldlist().first(); field != NULL; field = field->next())
|
||||
@ -1652,8 +1653,10 @@ static void menu_main_populate(running_machine &machine, ui_menu *menu, void *st
|
||||
}
|
||||
|
||||
/* add input menu items */
|
||||
ui_menu_item_append(menu, "Input (general)", NULL, 0, (void *)menu_input_groups);
|
||||
ui_menu_item_append(menu, "Input (this " CAPSTARTGAMENOUN ")", NULL, 0, (void *)menu_input_specific);
|
||||
ui_menu_item_append(menu, "Input (general)", NULL, 0, (void *)menu_input_groups);
|
||||
|
||||
menu_text.printf("Input (this %s)",emulator_info::get_capstartgamenoun());
|
||||
ui_menu_item_append(menu, menu_text.cstr(), NULL, 0, (void *)menu_input_specific);
|
||||
|
||||
/* add optional input-related menus */
|
||||
if (has_dips)
|
||||
@ -1667,7 +1670,8 @@ static void menu_main_populate(running_machine &machine, ui_menu *menu, void *st
|
||||
ui_menu_item_append(menu, "Bookkeeping Info", NULL, 0, (void *)menu_bookkeeping);
|
||||
|
||||
/* add game info menu */
|
||||
ui_menu_item_append(menu, CAPSTARTGAMENOUN " Information", NULL, 0, (void *)menu_game_info);
|
||||
menu_text.printf("%s Information",emulator_info::get_capstartgamenoun());
|
||||
ui_menu_item_append(menu, menu_text.cstr(), NULL, 0, (void *)menu_game_info);
|
||||
|
||||
device_image_interface *image = NULL;
|
||||
if (machine.devicelist().first(image))
|
||||
@ -1717,7 +1721,8 @@ static void menu_main_populate(running_machine &machine, ui_menu *menu, void *st
|
||||
ui_menu_item_append(menu, "Memory Card", NULL, 0, (void *)menu_memory_card);
|
||||
|
||||
/* add reset and exit menus */
|
||||
ui_menu_item_append(menu, "Select New " CAPSTARTGAMENOUN, NULL, 0, (void *)menu_select_game);
|
||||
menu_text.printf("Select New %s",emulator_info::get_capstartgamenoun());
|
||||
ui_menu_item_append(menu, menu_text.cstr(), NULL, 0, (void *)menu_select_game);
|
||||
}
|
||||
|
||||
|
||||
@ -3705,9 +3710,14 @@ static void menu_select_game_populate(running_machine &machine, ui_menu *menu, s
|
||||
/* if nothing there, add a single multiline item and return */
|
||||
if (matchcount == 0)
|
||||
{
|
||||
ui_menu_item_append(menu, "No "GAMESNOUN" found. Please check the rompath specified in the "CONFIGNAME".ini file.\n\n"
|
||||
"If this is your first time using "APPNAME", please see the config.txt file in "
|
||||
"the docs directory for information on configuring "APPNAME".", NULL, MENU_FLAG_MULTILINE | MENU_FLAG_REDTEXT, NULL);
|
||||
astring txt;
|
||||
txt.printf("No %s found. Please check the rompath specified in the %s.ini file.\n\n"
|
||||
"If this is your first time using %s, please see the config.txt file in "
|
||||
"the docs directory for information on configuring %s.",
|
||||
emulator_info::get_gamesnoun(),
|
||||
emulator_info::get_configname(),
|
||||
emulator_info::get_appname(),emulator_info::get_appname() );
|
||||
ui_menu_item_append(menu, txt.cstr(), NULL, MENU_FLAG_MULTILINE | MENU_FLAG_REDTEXT, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3868,12 +3878,12 @@ static void menu_select_game_custom_render(running_machine &machine, ui_menu *me
|
||||
}
|
||||
else
|
||||
{
|
||||
const char *s = COPYRIGHT;
|
||||
const char *s = emulator_info::get_copyright();
|
||||
line = 0;
|
||||
int col = 0;
|
||||
|
||||
/* first line is version string */
|
||||
sprintf(&tempbuf[line++][0], "%s %s", APPLONGNAME, build_version);
|
||||
sprintf(&tempbuf[line++][0], "%s %s", emulator_info::get_applongname(), build_version);
|
||||
|
||||
/* output message */
|
||||
while (line < ARRAY_LENGTH(tempbuf))
|
||||
|
@ -337,7 +337,7 @@ void video_manager::save_snapshot(screen_device *screen, emu_file &file)
|
||||
create_snapshot_bitmap(screen);
|
||||
|
||||
// add two text entries describing the image
|
||||
astring text1(APPNAME, " ", build_version);
|
||||
astring text1(emulator_info::get_appname(), " ", build_version);
|
||||
astring text2(machine().system().manufacturer, " ", machine().system().description);
|
||||
png_info pnginfo = { 0 };
|
||||
png_add_text(&pnginfo, "Software", text1);
|
||||
@ -1259,7 +1259,7 @@ void video_manager::record_frame()
|
||||
png_info pnginfo = { 0 };
|
||||
if (m_movie_frame == 0)
|
||||
{
|
||||
astring text1(APPNAME, " ", build_version);
|
||||
astring text1(emulator_info::get_appname(), " ", build_version);
|
||||
astring text2(machine().system().manufacturer, " ", machine().system().description);
|
||||
png_add_text(&pnginfo, "Software", text1);
|
||||
png_add_text(&pnginfo, "System", text2);
|
||||
|
53
src/mame/mame.c
Normal file
53
src/mame/mame.c
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************************************
|
||||
|
||||
mame.c
|
||||
|
||||
Specific (per target) constants
|
||||
|
||||
Copyright Nicola Salmoria and the MAME Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
|
||||
****************************************************************************/
|
||||
#include "emu.h"
|
||||
|
||||
#define APPNAME "MAME"
|
||||
#define APPNAME_LOWER "mame"
|
||||
#define CONFIGNAME "mame"
|
||||
#define APPLONGNAME "M.A.M.E."
|
||||
#define FULLLONGNAME "Multiple Arcade Machine Emulator"
|
||||
#define CAPGAMENOUN "GAME"
|
||||
#define CAPSTARTGAMENOUN "Game"
|
||||
#define GAMENOUN "game"
|
||||
#define GAMESNOUN "games"
|
||||
#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttp://mamedev.org"
|
||||
#define COPYRIGHT_INFO "Copyright Nicola Salmoria and the MAME team"
|
||||
#define DISCLAIMER "MAME is an emulator: it reproduces, more or less faithfully, the behaviour of\n" \
|
||||
"several arcade machines. But hardware is useless without software, so an image\n" \
|
||||
"of the ROMs which run on that hardware is required. Such ROMs, like any other\n" \
|
||||
"commercial software, are copyrighted material and it is therefore illegal to\n" \
|
||||
"use them if you don't own the original arcade machine. Needless to say, ROMs\n" \
|
||||
"are not distributed together with MAME. Distribution of MAME together with ROM\n" \
|
||||
"images is a violation of copyright law and should be promptly reported to the\n" \
|
||||
"authors so that appropriate legal action can be taken.\n"
|
||||
#define USAGE "Usage: %s [%s] [options]"
|
||||
#define XML_ROOT "mame"
|
||||
#define XML_TOP "game"
|
||||
#define STATE_MAGIC_NUM "MAMESAVE"
|
||||
|
||||
const char * emulator_info::get_appname() { return APPNAME;}
|
||||
const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;}
|
||||
const char * emulator_info::get_configname() { return CONFIGNAME;}
|
||||
const char * emulator_info::get_applongname() { return APPLONGNAME;}
|
||||
const char * emulator_info::get_fulllongname() { return FULLLONGNAME;}
|
||||
const char * emulator_info::get_capgamenoun() { return CAPGAMENOUN;}
|
||||
const char * emulator_info::get_capstartgamenoun() { return CAPSTARTGAMENOUN;}
|
||||
const char * emulator_info::get_gamenoun() { return GAMENOUN;}
|
||||
const char * emulator_info::get_gamesnoun() { return GAMESNOUN;}
|
||||
const char * emulator_info::get_copyright() { return COPYRIGHT;}
|
||||
const char * emulator_info::get_copyright_info() { return COPYRIGHT_INFO;}
|
||||
const char * emulator_info::get_disclaimer() { return DISCLAIMER;}
|
||||
const char * emulator_info::get_usage() { return USAGE;}
|
||||
const char * emulator_info::get_xml_root() { return XML_ROOT;}
|
||||
const char * emulator_info::get_xml_top() { return XML_TOP;}
|
||||
const char * emulator_info::get_state_magic_num() { return STATE_MAGIC_NUM;}
|
||||
void emulator_info::printf_usage(const char *par1, const char *par2) { mame_printf_info(USAGE, par1, par2); }
|
@ -703,9 +703,9 @@ int sdlwindow_video_window_create(running_machine &machine, int index, sdl_monit
|
||||
|
||||
// make the window title
|
||||
if (video_config.numscreens == 1)
|
||||
sprintf(window->title, APPNAME ": %s [%s]", machine.system().description, machine.system().name);
|
||||
sprintf(window->title, "%s: %s [%s]", emulator_info::get_appname(), machine.system().description, machine.system().name);
|
||||
else
|
||||
sprintf(window->title, APPNAME ": %s [%s] - Screen %d", machine.system().description, machine.system().name, index);
|
||||
sprintf(window->title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), machine.system().description, machine.system().name, index);
|
||||
|
||||
wp->window = window;
|
||||
|
||||
|
@ -400,7 +400,7 @@ void hlsl_info::render_snapshot(d3d_surface *surface)
|
||||
return;
|
||||
|
||||
// add two text entries describing the image
|
||||
astring text1(APPNAME, " ", build_version);
|
||||
astring text1(emulator_info::get_appname(), " ", build_version);
|
||||
astring text2(window->machine().system().manufacturer, " ", window->machine().system().description);
|
||||
png_info pnginfo = { 0 };
|
||||
png_add_text(&pnginfo, "Software", text1);
|
||||
|
@ -690,9 +690,9 @@ void winwindow_video_window_create(running_machine &machine, int index, win_moni
|
||||
|
||||
// make the window title
|
||||
if (video_config.numscreens == 1)
|
||||
sprintf(window->title, APPNAME ": %s [%s]", machine.system().description, machine.system().name);
|
||||
sprintf(window->title, "%s: %s [%s]", emulator_info::get_appname(), machine.system().description, machine.system().name);
|
||||
else
|
||||
sprintf(window->title, APPNAME ": %s [%s] - Screen %d", machine.system().description, machine.system().name, index);
|
||||
sprintf(window->title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), machine.system().description, machine.system().name, index);
|
||||
|
||||
// set the initial maximized state
|
||||
window->startmaximized = options.maximize();
|
||||
|
@ -548,7 +548,7 @@ static void winui_output_error(void *param, const char *format, va_list argptr)
|
||||
winwindow_toggle_full_screen();
|
||||
|
||||
vsnprintf(buffer, ARRAY_LENGTH(buffer), format, argptr);
|
||||
win_message_box_utf8(win_window_list ? win_window_list->hwnd : NULL, buffer, APPNAME, MB_OK);
|
||||
win_message_box_utf8(win_window_list ? win_window_list->hwnd : NULL, buffer, emulator_info::get_appname(), MB_OK);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user