changeset 463:a1d298119153

Added -h help text option
author Mike Pavone <pavone@retrodev.com>
date Tue, 10 Sep 2013 20:32:59 -0700
parents 5677c053edd6
children 226ed16b1fb6
files blastem.c
diffstat 1 files changed, 30 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/blastem.c	Tue Sep 10 09:55:12 2013 -0700
+++ b/blastem.c	Tue Sep 10 20:32:59 2013 -0700
@@ -1724,11 +1724,7 @@
 int main(int argc, char ** argv)
 {
 	if (argc < 2) {
-		fputs("Usage: blastem FILENAME [options]\n", stderr);
-		return 1;
-	}
-	if(!load_rom(argv[1])) {
-		fprintf(stderr, "Failed to open %s for reading\n", argv[1]);
+		fputs("Usage: blastem ROMFILE [OPTIONS] [WIDTH] [HEIGHT]\n", stderr);
 		return 1;
 	}
 	config = load_config(argv[0]);
@@ -1737,10 +1733,11 @@
 	int height = -1;
 	int debug = 0;
 	int ym_log = 0;
+	int loaded = 0;
 	FILE *address_log = NULL;
 	char * statefile = NULL;
 	uint8_t fullscreen = 0;
-	for (int i = 2; i < argc; i++) {
+	for (int i = 1; i < argc; i++) {
 		if (argv[i][0] == '-') {
 			switch(argv[i][1]) {
 			case 'd':
@@ -1752,9 +1749,9 @@
 			case 'l':
 				address_log = fopen("address.log", "w");
 				break;
-			case 'v':
-				headless = 1;
-				break;
+//			case 'v':
+//				headless = 1;
+//				break;
 			case 'n':
 				z80_enabled = 0;
 				break;
@@ -1794,16 +1791,40 @@
 			case 'y':
 				ym_log = 1;
 				break;
+			case 'h':
+				puts(
+					"Usage: blastem ROMFILE [OPTIONS] [WIDTH] [HEIGHT]\n"
+					"Options:\n"
+					"	-h          Print this help text\n"
+					"	-r (J|U|E)  Force region to Japan, US or Europe respectively\n"
+					"	-f          Start in fullscreen mode\n"
+					"	-s FILE     Load a GST format savestate from FILE\n"
+					"	-d          Enter debugger on startup\n"
+					"	-n          Disable Z80\n"
+					"	-l          Log 68K code addresses (useful for assemblers)\n"
+					"	-y          Log individual YM-2612 channels to WAVE files\n"
+				);
+				return 0;
 			default:
 				fprintf(stderr, "Unrecognized switch %s\n", argv[i]);
 				return 1;
 			}
+		} else if (!loaded) {
+			if(!load_rom(argv[i])) {
+				fprintf(stderr, "Failed to open %s for reading\n", argv[1]);
+				return 1;
+			}
+			loaded = 1;
 		} else if (width < 0) {
 			width = atoi(argv[i]);
 		} else if (height < 0) {
 			height = atoi(argv[i]);
 		}
 	}
+	if (!loaded) {
+		fputs("You must specify a ROM filename!\n", stderr);
+		return 1;
+	}
 	update_title();
 	int def_width = 0;
 	char *config_width = tern_find_ptr(config, "videowidth");