in late August 2004, i released a Sketch Bug fix on Master ZED's site that intended to give FF3us 1.0 the protections of v1.1.
however, in September 2012, Novalia Spirit (may he R.I.P. truly, he was an inspiration to us a -- wait, what?!) informed me, by way of our joint (heterosexual) confidante, Lenophis, that my patch is incomplete. it'll work on vanilla FF3us 1.0, but a hack that changes innocuous data could be blindsided by a lurking bug that, in the vein of Freddy Krueger and Jason Voorhees, just won't die.
basically, there are two components to Square's fix in FF3us 1.1:
1) Bank C2 is discussed here:
http://masterzed.cavesofnarshe.com/Game ... 3sktch.txt
when Sketch misses, save a special case value of FFFFh for a pointer.
2) Bank C1 is discussed here:
http://www.angelfire.com/al2/imzogelmo/Differences.txt
detect the pointer value of FFFFh, and don't treat it normally. instead, recognize it as a special case, and take steps accordingly, which involve zeroing its value used in a pointer calculation, or zeroing two video buffers.
---------------
my patch does Bank C2 fine, but totally missed Bank C1. inexcusable, given Imzogelmo's fine document predates it by a month. either i didn't notice it until later, or failed to understand its significance.
America is the land of second acts, so i'm finally taking the opportunity to get this right. here's an untested attempt at a Bank C1 portion:
http://assassin17.brinkster.net/forum-p ... c1-fix.asm
C1/2456 thru C1/24A4 are essentially the same as what Square did in FF3us 1.1. but i kept v1.0's relative order of functions, as i set out to minimize the number of routines with altered starting addresses. of note is reordering Function C1/2456's internals a little differently, so that Function C1/24D1 could shrink by reusing it.
C1/24A9 has a very minor change.
C1/24D1 should be functionally equivalent to FF3us 1.1, but a bit smaller due to said reuse.
C1/24F5 is also hopefully behaviorally equivalent to FF3us 1.1, but gets the most clever with optimizations, so i'd like extra peer review on this.
the 12-year anniversary of the original patch is in late August. i hope to have a working new patch out 4-5 weeks after that, as punctuality and sentimentality are for weenies. the 3.6-year dawdling (even less excusable than getting the initial patch wrong) was part being a lazy jackass, and part thinking that i'd have to revamp much of Functions C1/24F5 and near-twin C1/205A into shared functionlets to make the former fit.
scrutiny and feedback are much appreciated, and any questions are welcome.