ugetab
09-17-2007, 06:01 PM
You've taken so damn long to respond that I went from knowing nothing about the PPU to fixing the problem myself with occasional effort.
Someone else can update the patch if they've got an understanding of IPS patch mechanics.
In the patched game file:
Using a hex editor (ftp://ftp.sunet.se/pub/simtelnet/win95/editor/hexfre20.zip), navigate to 3F705 and change the address from AD to A9. Accept the window that says you need to allow edits.
Select 4 bytes of data starting at 3F7B9, and ending at 3F7BC. All 4 bytes should be listed as EA. Use the Edit>Cut option. Press OK when it says it wants to turn off overtype mode. Navigate to 3F7DE, and paste the 4 bytes there (Edit>Paste). Go back to the edit menu, and click on the last option, the 'Insert' option. This will disable it.
Now, navigate back to 3F7DE, and type in C9, 04, F0, 0A. The 4 EAs should be replaced by this typing. Save the file. (File>Save)
If you mess up while doing this, go to File>Close, and then click 'No', and open the same file again, then start from the beginning.
If you save a messed up file, just re-patch the original game file, and use that copy.
Once the file is edited, the ending won't get any PPU errors. The basic reason this fix works is that the text lines get cleared across 2 VBLANK periods, instead of 1 VBLANK period(run 00 and 02 clear the first line, it stops clearing and leaves the progress as it is, then on the next VBLANK, 04 and 06 clear the second, and it sets the appropriate memory addresses to note that the operation is complete). This prevents PPU corruption issues that occur from trying to do too much during one VBLANK.
Someone else can update the patch if they've got an understanding of IPS patch mechanics.
In the patched game file:
Using a hex editor (ftp://ftp.sunet.se/pub/simtelnet/win95/editor/hexfre20.zip), navigate to 3F705 and change the address from AD to A9. Accept the window that says you need to allow edits.
Select 4 bytes of data starting at 3F7B9, and ending at 3F7BC. All 4 bytes should be listed as EA. Use the Edit>Cut option. Press OK when it says it wants to turn off overtype mode. Navigate to 3F7DE, and paste the 4 bytes there (Edit>Paste). Go back to the edit menu, and click on the last option, the 'Insert' option. This will disable it.
Now, navigate back to 3F7DE, and type in C9, 04, F0, 0A. The 4 EAs should be replaced by this typing. Save the file. (File>Save)
If you mess up while doing this, go to File>Close, and then click 'No', and open the same file again, then start from the beginning.
If you save a messed up file, just re-patch the original game file, and use that copy.
Once the file is edited, the ending won't get any PPU errors. The basic reason this fix works is that the text lines get cleared across 2 VBLANK periods, instead of 1 VBLANK period(run 00 and 02 clear the first line, it stops clearing and leaves the progress as it is, then on the next VBLANK, 04 and 06 clear the second, and it sets the appropriate memory addresses to note that the operation is complete). This prevents PPU corruption issues that occur from trying to do too much during one VBLANK.