Category : Music and Digitized Voice
Archive   : GB2F.ZIP
Filename : GB2FIX.C
program to patch Activision's GHOSTBUSTERS II
to work with Creative Labs SOUNDBLASTER card
If your system locks up after outputting a digitized
voice, try this quick fix. If this doesn't do it,
call Creative Labs for a patch disk.
John Hayes
1094 Berkshire Drive
Macedonia, Ohio 44056-1643
CompuServe 73447,3515
Compiled with Microsoft C - Version 5.1
*/
#include
main()
{
FILE *fd;
int ch;
long remember;
/*
open GB.EXE for read/write
*/
if ((fd=fopen("gb.exe","r+b")) == NULL) {
perror("unable to open GB.EXE for modification");
exit(-1);
}
/*
find the binary string 75 fc 5d cb
and replace "fc" with "f8"
*/
while ((ch = getc(fd)) != EOF) {
if (ch == 0x75) {
remember = ftell(fd);
ch = getc(fd);
if (ch == 0xfc) {
ch = getc(fd);
if (ch == 0x5d) {
ch = getc(fd);
if (ch == 0xcb) {
fseek(fd,remember,SEEK_SET);
putc(0xf8,fd);
puts("GB.EXE patched");
break;
}
}
}
}
}
fclose(fd);
/*
open SHELL.EXE for read/write
*/
if ((fd=fopen("shell.exe","r+b")) == NULL) {
perror("unable to open SHELL.EXE for modification");
exit(-1);
}
/*
find the binary string 75 fc 5d cb
and replace "fc" with "f8"
*/
while ((ch = getc(fd)) != EOF) {
if (ch == 0x75) {
remember = ftell(fd);
ch = getc(fd);
if (ch == 0xfc) {
ch = getc(fd);
if (ch == 0x5d) {
ch = getc(fd);
if (ch == 0xcb) {
fseek(fd,remember,SEEK_SET);
putc(0xf8,fd);
puts("SHELL.EXE patched");
break;
}
}
}
}
}
fclose(fd);
}
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/