We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Notes:Burning Rangers
Jump to navigation
Jump to search
This page contains notes for the game Burning Rangers.
Web Page Extraction Code
/* gcc -Wall -O2 -o wavstrip wavstrip.c */ #include <stddef.h> #include <stdio.h> #include <string.h> #undef NDEBUG #include <assert.h> int main(int argc, char* argv[]) { int i; for(i = 1; i < argc; i++) { static char buf[8192]; static char buf2[8192]; FILE* ip; FILE* op; FILE* op2; unsigned char tmp[4]; unsigned junkoffs; int c; snprintf(buf, sizeof(buf), "%s-JUNK", argv[i]); snprintf(buf2, sizeof(buf2), "%s-ALJNK", argv[i]); assert(strlen(buf) > strlen(argv[i])); assert(strlen(buf2) > strlen(argv[i])); ip = fopen(argv[i], "rb"); op = fopen(buf, "wb"); op2 = fopen(buf2, "wb"); assert(ip != NULL); assert(op != NULL); assert(fseek(ip, 4, SEEK_SET) == 0); assert(fread(tmp, 1, 4, ip) == 4); junkoffs = 8 + (tmp[0] | (tmp[1] << 8) | (tmp[2] << 16) | (tmp[3] << 24)); assert(fseek(ip, junkoffs, SEEK_SET) == 0); while((c = fgetc(ip)) >= 0) fputc(c, op); assert(fseek(ip, (junkoffs + 32767) &~ 32767, SEEK_SET) == 0); while((c = fgetc(ip)) >= 0) fputc(c, op2); fclose(ip); fclose(op); fclose(op2); } return 0; }
/* gcc -Wall -O2 -o junkextract junkextract.c */ /* Use on *ALJNK */ #include <stddef.h> #include <stdio.h> #include <string.h> #include <strings.h> #undef NDEBUG #include <assert.h> int main(int argc, char* argv[]) { int i; for(i = 1; i < argc; i++) { static char fn[8192]; FILE* ip; FILE* op = NULL; static char tmp[32768]; unsigned counter = 0; size_t rc; unsigned cluster_counter = 0; ip = fopen(argv[i], "rb"); assert(ip != NULL); while((rc = fread(tmp, 1, 32768, ip)) > 0) { #if 0 { FILE* opr; snprintf(fn, sizeof(fn), "%s-%u.raw", argv[i], cluster_counter); assert(strlen(fn) > strlen(argv[i])); opr = fopen(fn, "wb"); assert(opr != NULL); assert(fwrite(tmp, 1, rc, opr) == rc); fclose(opr); cluster_counter++; } #endif { const char* ext = NULL; if(!strncasecmp(tmp, "<HTML>", 6) || !strncasecmp(tmp, "<!DOCTYPE", 9)) ext = ".html"; else if(!strncmp(tmp, "GIF87a", 6) || !strncmp(tmp, "GIF89a", 6)) ext = ".gif"; else if((unsigned char)tmp[0] == 0xFF && !strncmp(&tmp[6], "JFIF", 4)) ext = ".jpg"; #if 0 printf("%.6s %s\n", tmp, ext); #endif if(ext) { if(op) fclose(op); snprintf(fn, sizeof(fn), "%s-%u%s", argv[i], counter, ext); op = fopen(fn, "wb"); assert(op != NULL); counter++; } } if(op) assert(fwrite(tmp, 1, rc, op) == rc); } if(op) fclose(op); fclose(ip); } return 0; }