#include #include #include "common.h" int i,b; FILE *f; unsigned char cart[PAYLOADBANKS * 0x2000]; unsigned char rnd[0x2000]; unsigned char testcode[0x2000]; int main(int argc, char *argv[]) { // 8k of random data f = fopen("random.bin", "rb"); for (i = 0; i < 0x2000; i++) { rnd[i] = fgetc(f); } fclose(f); // 8k of ROM testcode f = fopen("testcode.bin", "rb"); for (i = 0; i < 0x2000; i++) { testcode[i] = fgetc(f); } fclose(f); // 24k cartridge data f = fopen("testcart.bin", "rb"); for (i = 0; i < (PAYLOADBANKS * 0x2000); i++) { cart[i] = fgetc(f); } fclose(f); // actual cart data first f = fopen("mergedcart.bin", "wb"); for (i = 0; i < (PAYLOADBANKS * 0x2000); i++) { fputc(cart[i], f); } // testcode for (i = 0; i < 0x2000; i++) { fputc(testcode[i], f); } // fill rest of cart with random data // even bytes are EORed with bank nr. highbyte // odd bytes are EORed with bank nr. lowbyte for (b = (PAYLOADBANKS + 1); b < CARTBANKS; b++) { for (i = 0; i < 0x2000; i++) { fputc(rnd[i] ^ (b >> 8), f); i++; fputc(rnd[i] ^ (b & 0xff), f); } } fclose(f); }