mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
added a command line option -q for quiet mode (suppresses messages except errors) (lmod)
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
#define OPTF_VALIDATE 0x04L
|
#define OPTF_VALIDATE 0x04L
|
||||||
#define OPTF_TITLE 0x08L
|
#define OPTF_TITLE 0x08L
|
||||||
#define OPTF_TRUNCATE 0x10L
|
#define OPTF_TRUNCATE 0x10L
|
||||||
|
#define OPTF_QUIET 0x20L
|
||||||
|
|
||||||
unsigned long ulOptions;
|
unsigned long ulOptions;
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ void PrintUsage(void)
|
|||||||
printf("\t-r\t\ttRuncate image to valid size\n\t\t\tTruncates to 32/64/128/256/512kB as appropriate\n");
|
printf("\t-r\t\ttRuncate image to valid size\n\t\t\tTruncates to 32/64/128/256/512kB as appropriate\n");
|
||||||
printf("\t-t<name>\tChange cartridge title field (16 characters)\n");
|
printf("\t-t<name>\tChange cartridge title field (16 characters)\n");
|
||||||
printf("\t-v\t\tValidate header\n\t\t\tCorrects - Nintendo Character Area (0x0104)\n\t\t\t\t - ROM type (0x0147)\n\t\t\t\t - ROM size (0x0148)\n\t\t\t\t - Checksums (0x014D-0x014F)\n");
|
printf("\t-v\t\tValidate header\n\t\t\tCorrects - Nintendo Character Area (0x0104)\n\t\t\t\t - ROM type (0x0147)\n\t\t\t\t - ROM size (0x0148)\n\t\t\t\t - Checksums (0x014D-0x014F)\n");
|
||||||
|
printf("\t-q\t\tExecute quietly (suppress all text except errors)\n");
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@@ -153,6 +155,9 @@ int main(int argc, char *argv[])
|
|||||||
strncpy(cartname, argv[argn - 1] + 2, 16);
|
strncpy(cartname, argv[argn - 1] + 2, 16);
|
||||||
ulOptions |= OPTF_TITLE;
|
ulOptions |= OPTF_TITLE;
|
||||||
break;
|
break;
|
||||||
|
case 'q':
|
||||||
|
ulOptions|=OPTF_QUIET;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +175,7 @@ int main(int argc, char *argv[])
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (ulOptions & OPTF_DEBUG) {
|
if ((ulOptions & OPTF_DEBUG) && !(ulOptions & OPTF_QUIET)) {
|
||||||
printf("-d (Debug) option enabled...\n");
|
printf("-d (Debug) option enabled...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +193,9 @@ int main(int argc, char *argv[])
|
|||||||
while (size > padto)
|
while (size > padto)
|
||||||
padto *= 2;
|
padto *= 2;
|
||||||
|
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("Padding to %ldkB:\n", padto / 1024);
|
printf("Padding to %ldkB:\n", padto / 1024);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if( padto<=0x80000L )
|
if( padto<=0x80000L )
|
||||||
@@ -206,9 +213,14 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
fflush(f);
|
fflush(f);
|
||||||
|
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tAdded %ld bytes\n", bytesadded);
|
printf("\tAdded %ld bytes\n", bytesadded);
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tNo padding needed\n");
|
printf("\tNo padding needed\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -231,7 +243,9 @@ int main(int argc, char *argv[])
|
|||||||
while (size < padto)
|
while (size < padto)
|
||||||
padto /= 2;
|
padto /= 2;
|
||||||
|
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("Truncating to %ldkB:\n", padto / 1024);
|
printf("Truncating to %ldkB:\n", padto / 1024);
|
||||||
|
}
|
||||||
|
|
||||||
mkstemp(tempfile);
|
mkstemp(tempfile);
|
||||||
|
|
||||||
@@ -256,15 +270,19 @@ int main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (ulOptions & OPTF_TITLE) {
|
if (ulOptions & OPTF_TITLE) {
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("Setting cartridge title:\n");
|
printf("Setting cartridge title:\n");
|
||||||
|
}
|
||||||
if ((ulOptions & OPTF_DEBUG) == 0) {
|
if ((ulOptions & OPTF_DEBUG) == 0) {
|
||||||
fflush(f);
|
fflush(f);
|
||||||
fseek(f, 0x0134L, SEEK_SET);
|
fseek(f, 0x0134L, SEEK_SET);
|
||||||
fwrite(cartname, 16, 1, f);
|
fwrite(cartname, 16, 1, f);
|
||||||
fflush(f);
|
fflush(f);
|
||||||
}
|
}
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tTitle set to %s\n", cartname);
|
printf("\tTitle set to %s\n", cartname);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* -v (Validate header) option code
|
* -v (Validate header) option code
|
||||||
@@ -280,7 +298,9 @@ int main(int argc, char *argv[])
|
|||||||
0;
|
0;
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
|
if(!(ulOptions & OPTF_VALIDATE)) {
|
||||||
printf("Validating header:\n");
|
printf("Validating header:\n");
|
||||||
|
}
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
/* Nintendo Character Area */
|
/* Nintendo Character Area */
|
||||||
@@ -307,12 +327,14 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
fflush(f);
|
fflush(f);
|
||||||
|
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
if (byteschanged)
|
if (byteschanged)
|
||||||
printf
|
printf
|
||||||
("\tChanged %ld bytes in the Nintendo Character Area\n",
|
("\tChanged %ld bytes in the Nintendo Character Area\n",
|
||||||
byteschanged);
|
byteschanged);
|
||||||
else
|
else
|
||||||
printf("\tNintendo Character Area is OK\n");
|
printf("\tNintendo Character Area is OK\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* ROM size */
|
/* ROM size */
|
||||||
|
|
||||||
@@ -331,13 +353,17 @@ int main(int argc, char *argv[])
|
|||||||
fputc(calcromsize, f);
|
fputc(calcromsize, f);
|
||||||
fflush(f);
|
fflush(f);
|
||||||
}
|
}
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tChanged ROM size byte from 0x%02lX (%ldkB) to 0x%02lX (%ldkB)\n",
|
printf("\tChanged ROM size byte from 0x%02lX (%ldkB) to 0x%02lX (%ldkB)\n",
|
||||||
cartromsize,
|
cartromsize,
|
||||||
(0x8000L << cartromsize) / 1024,
|
(0x8000L << cartromsize) / 1024,
|
||||||
calcromsize,
|
calcromsize,
|
||||||
(0x8000L << calcromsize) / 1024);
|
(0x8000L << calcromsize) / 1024);
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tROM size byte is OK\n");
|
printf("\tROM size byte is OK\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* Cartridge type */
|
/* Cartridge type */
|
||||||
|
|
||||||
@@ -355,14 +381,20 @@ int main(int argc, char *argv[])
|
|||||||
fputc(0x01, f);
|
fputc(0x01, f);
|
||||||
fflush(f);
|
fflush(f);
|
||||||
}
|
}
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf
|
printf
|
||||||
("\tCartridge type byte changed to 0x01\n");
|
("\tCartridge type byte changed to 0x01\n");
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tCartridge type byte is OK\n");
|
printf("\tCartridge type byte is OK\n");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
/* carttype byte can be anything? */
|
/* carttype byte can be anything? */
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tCartridge type byte is OK\n");
|
printf("\tCartridge type byte is OK\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Checksum */
|
/* Checksum */
|
||||||
|
|
||||||
@@ -400,11 +432,16 @@ int main(int argc, char *argv[])
|
|||||||
fputc(calcchecksum & 0xFF, f);
|
fputc(calcchecksum & 0xFF, f);
|
||||||
}
|
}
|
||||||
fflush(f);
|
fflush(f);
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf
|
printf
|
||||||
("\tChecksum changed from 0x%04lX to 0x%04lX\n",
|
("\tChecksum changed from 0x%04lX to 0x%04lX\n",
|
||||||
(long)cartchecksum, (long)calcchecksum);
|
(long)cartchecksum, (long)calcchecksum);
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tChecksum is OK\n");
|
printf("\tChecksum is OK\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (cartcompchecksum != calccompchecksum) {
|
if (cartcompchecksum != calccompchecksum) {
|
||||||
fflush(f);
|
fflush(f);
|
||||||
@@ -412,12 +449,17 @@ int main(int argc, char *argv[])
|
|||||||
if ((ulOptions & OPTF_DEBUG) == 0)
|
if ((ulOptions & OPTF_DEBUG) == 0)
|
||||||
fputc(calccompchecksum, f);
|
fputc(calccompchecksum, f);
|
||||||
fflush(f);
|
fflush(f);
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf
|
printf
|
||||||
("\tCompChecksum changed from 0x%02lX to 0x%02lX\n",
|
("\tCompChecksum changed from 0x%02lX to 0x%02lX\n",
|
||||||
(long)cartcompchecksum,
|
(long)cartcompchecksum,
|
||||||
(long)calccompchecksum);
|
(long)calccompchecksum);
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
|
if(!(ulOptions & OPTF_QUIET)) {
|
||||||
printf("\tCompChecksum is OK\n");
|
printf("\tCompChecksum is OK\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user