int CLIB_DECL main(int argc, char *argv[]) { int result = -1; clock_t begin_time; double elapsed_time; core_options *messtest_options = NULL; test_count = 0; failure_count = 0; messtest_options = NULL; /* register options */ messtest_options = options_create(messtest_fail); options_add_entries(messtest_options, messtest_option_entries); options_set_option_callback(messtest_options, OPTION_GAMENAME, handle_arg); /* run MAME's validity checks; if these fail cop out now */ /* NPW 16-Sep-2006 - commenting this out because this cannot be run outside of MAME */ //if (mame_validitychecks(-1)) // goto done; /* run Imgtool's validity checks; if these fail cop out now */ if (imgtool_validitychecks()) goto done; begin_time = clock(); /* parse the commandline */ if (options_parse_command_line(messtest_options, argc, argv, OPTION_PRIORITY_CMDLINE,TRUE)) { fprintf(stderr, "Error while parsing cmdline\n"); goto done; } if (test_count > 0) { elapsed_time = ((double) (clock() - begin_time)) / CLOCKS_PER_SEC; fprintf(stderr, "Tests complete; %i test(s), %i failure(s), elapsed time %.2f\n", test_count, failure_count, elapsed_time); } else { fprintf(stderr, "Usage: %s [test1] [test2]...\n", argv[0]); } result = failure_count; done: if (messtest_options) options_free(messtest_options); return result; }
core_options *mame_options_init(const options_entry *entries) { /* create MAME core options */ core_options *opts = options_create(memory_error); /* set up output callbacks */ options_set_output_callback(opts, OPTMSG_INFO, mame_puts_info); options_set_output_callback(opts, OPTMSG_WARNING, mame_puts_warning); options_set_output_callback(opts, OPTMSG_ERROR, mame_puts_error); options_add_entries(opts, mame_core_options); if (entries != NULL) options_add_entries(opts, entries); /* we need to dynamically add options when the device name is parsed */ options_set_option_callback(opts, OPTION_GAMENAME, image_driver_name_callback); return opts; }