New patch. Supersedes the previous 240-scanlines patch.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
struct
{
unsigned long offset;
unsigned char before;
unsigned char after;
} patch[]=
{
{ 0x1ff0d, 0xe0, 0xf0 }, { 0x1f352, 0xe0, 0xf0 }, { 0x1f2e6, 0xe0, 0xf0 },
{ 0x1f389, 0xe0, 0xef }, { 0x1f2f1, 0xe0, 0xf0 }, { 0x1f34e, 0x45, 0x3d },
{ 0x1f2e2, 0x45, 0x3d }, { 0x1ff31, 0xc0, 0xe0 }, { 0x46920, 0x20, 0x10 },
{ 0x1f5cd, 0xe0, 0xf0 }, { 0x1f5d8, 0x45, 0x3d }, { 0x1f617, 0xe0, 0xf0 },
{ 0x1f60c, 0xe0, 0xf0 }, { 0x1f608, 0x45, 0x3d }, { 0x1f1ad, 0x45, 0x3d },
{ 0x1f1b2, 0x38, 0x3c }, { 0x1f6e0, 0xe0, 0xf0 }, { 0x1f6dc, 0x45, 0x3d },
{ 0x1f71d, 0xe0, 0xf0 }, { 0x1f460, 0xe0, 0xf0 }, { 0x1f478, 0xe0, 0xf0 },
{ 0,0,0 },
};
FILE *fp = fopen("FAMTASIA.EXE", "rb+");
if(!fp) { perror("FAMTASIA.EXE"); return -1; }
int i;
for(i=0; patch[i].offset; ++i)
{
fseek(fp, patch[i].offset, SEEK_SET);
fwrite(&patch[i].after, 1, 1, fp);
}
return 0;
}
This adds fullscreen support. You might notice that the very top scanline has been cut off and an extra one placed at the bottom of the screen -- this is apparently a glitch in Famtasia's emulation. For some reason the x3 magnification is uneven -- not all the pixels are uniform in size -- but I'm not going to worry about it too much right now. :)
I'm sorry that I released the previous version before fullscreen support was added. I dont know why it slipped my mind...