mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
add -s flag for SGB mode
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
#define OPTF_MBCTYPE 0x080L
|
||||
#define OPTF_GBCMODE 0x100L
|
||||
#define OPTF_JAPAN 0x200L
|
||||
#define OPTF_SGBMODE 0x400L
|
||||
|
||||
unsigned long ulOptions;
|
||||
|
||||
@@ -70,6 +71,7 @@ PrintUsage(void)
|
||||
printf(" -b<hx>\tSet MBC type\n");
|
||||
printf(" -c\t\tSet Game Boy Color compatible flag ([0x143] = 0x80)\n");
|
||||
printf(" -o\t\tSet Game Boy Color only flag ([0x143] = 0xC0)\n");
|
||||
printf(" -s\t\tSet Super Game Boy flags\n");
|
||||
printf(" -q\t\tExecute quietly (suppress all text except errors)\n");
|
||||
|
||||
exit(0);
|
||||
@@ -312,6 +314,9 @@ main(int argc, char *argv[])
|
||||
ulOptions |= OPTF_GBCMODE;
|
||||
gbc_mode = 0x80;
|
||||
break;
|
||||
case 's':
|
||||
ulOptions |= OPTF_SGBMODE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
argn++;
|
||||
@@ -512,6 +517,23 @@ main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* -s (Set SGB mode) option code
|
||||
*/
|
||||
if (ulOptions & OPTF_SGBMODE) {
|
||||
fflush(f);
|
||||
// set old licensee code to 0x33
|
||||
fseek(f, 0x14B, SEEK_SET);
|
||||
fputc(0x33, f);
|
||||
// set SGB flag to 0x03
|
||||
fseek(f, 0x146, SEEK_SET);
|
||||
fputc(3, f);
|
||||
fflush(f);
|
||||
|
||||
if (!(ulOptions & OPTF_QUIET)) {
|
||||
printf("Setting SGB mode flag\n");
|
||||
}
|
||||
}
|
||||
/*
|
||||
* -v (Validate header) option code
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user