diff --git a/.gitattributes b/.gitattributes index d760522cdf9..ba3ce544189 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/makefile b/makefile index b8f45afa3ae..ee4110ab427 100644 --- a/makefile +++ b/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) diff --git a/src/emu/clifront.c b/src/emu/clifront.c index 6abb34c92d9..80056389b21 100644 --- a/src/emu/clifront.c +++ b/src/emu/clifront.c @@ -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()); } diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c index d13a31132cc..147589e8881 100644 --- a/src/emu/emuopts.c +++ b/src/emu/emuopts.c @@ -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()) diff --git a/src/emu/info.c b/src/emu/info.c index 24b12a2eb2a..b0817035461 100644 --- a/src/emu/info.c +++ b/src/emu/info.c @@ -53,21 +53,21 @@ // DTD string describing the data const char info_xml_creator::s_dtd_string[] = -"\n" -"\t\n" -"\t\n" -"\t\n" -"\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" -"\t\t\n" +"\n" +"\t\n" +"\t\n" +"\t\n" +"\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" +"\t\t\n" "\t\t\n" "\t\t\n" "\t\t\n" @@ -214,16 +214,21 @@ void info_xml_creator::output(FILE *out) // output the DTD fprintf(m_output, "\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, "\n"); + fprintf(m_output, "\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\n"); + fprintf(m_output, "\t\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\n"); + fprintf(m_output, "\t\n",emulator_info::get_xml_top()); } //------------------------------------------------ diff --git a/src/emu/ioport.c b/src/emu/ioport.c index 8ad335b2327..2de7fd8192d 100644 --- a/src/emu/ioport.c +++ b/src/emu/ioport.c @@ -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)); diff --git a/src/emu/mame.h b/src/emu/mame.h index 3ffb63ee38f..13b51c696fc 100644 --- a/src/emu/mame.h +++ b/src/emu/mame.h @@ -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 diff --git a/src/emu/romload.c b/src/emu/romload.c index 14fc12279f3..b350e8d6d54 100644 --- a/src/emu/romload.c +++ b/src/emu/romload.c @@ -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()); } } diff --git a/src/emu/save.c b/src/emu/save.c index 32bc56f1d3a..15505eb1de7 100644 --- a/src/emu/save.c +++ b/src/emu/save.c @@ -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; } diff --git a/src/emu/save.h b/src/emu/save.h index 4af38458080..49d80d2e31c 100644 --- a/src/emu/save.h +++ b/src/emu/save.h @@ -238,8 +238,6 @@ private: simple_list m_entry_list; // list of reigstered entries simple_list m_presave_list; // list of pre-save functions simple_list m_postload_list; // list of post-load functions - - static const char s_magic_num[8]; // magic number for header }; diff --git a/src/emu/screen.c b/src/emu/screen.c index 0089399dc38..2947c21730c 100644 --- a/src/emu/screen.c +++ b/src/emu/screen.c @@ -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); diff --git a/src/emu/ui.c b/src/emu/ui.c index 56817e9190e..b9456617bf3 100644 --- a/src/emu/ui.c +++ b/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()); diff --git a/src/emu/uimenu.c b/src/emu/uimenu.c index b4854d76de1..51435814c1e 100644 --- a/src/emu/uimenu.c +++ b/src/emu/uimenu.c @@ -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)) diff --git a/src/emu/video.c b/src/emu/video.c index b11add50c94..2b6794c701a 100644 --- a/src/emu/video.c +++ b/src/emu/video.c @@ -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); diff --git a/src/mame/mame.c b/src/mame/mame.c new file mode 100644 index 00000000000..4f5a6bfb4bf --- /dev/null +++ b/src/mame/mame.c @@ -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); } diff --git a/src/osd/sdl/window.c b/src/osd/sdl/window.c index 5753f99a4ae..85428699668 100644 --- a/src/osd/sdl/window.c +++ b/src/osd/sdl/window.c @@ -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; diff --git a/src/osd/windows/d3dhlsl.c b/src/osd/windows/d3dhlsl.c index eecf54b51e9..6fb51026c90 100644 --- a/src/osd/windows/d3dhlsl.c +++ b/src/osd/windows/d3dhlsl.c @@ -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); diff --git a/src/osd/windows/window.c b/src/osd/windows/window.c index 1ffdc361f9a..78870ba9dff 100644 --- a/src/osd/windows/window.c +++ b/src/osd/windows/window.c @@ -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(); diff --git a/src/osd/windows/winmain.c b/src/osd/windows/winmain.c index 9f7c555e079..24d13cea2a0 100644 --- a/src/osd/windows/winmain.c +++ b/src/osd/windows/winmain.c @@ -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); }