zeldaTp.dat: complete corresponding source code (part 2 of ?)

The GNU GPL, my personal gold standard for a Free Software license, requires that you distribute the "complete corresponding machine-readable source code" in "the preferred form of the work for making modifications to it" for the binary program. But is it completely clear what that means in this case?

It seems almost certain that one step of the build process will take an existing zeldaTp.dat and "patch" it with the exploit code, changing less than 800 bytes out of 16384. Some of the rest of those 15000-odd bytes will be important, too--they place Link at the right location in the world and the right time in the plot for the exploit to work.

Actually, on further examination, it looks like only about the first 1536 bytes of the savegame are populated, with the rest of the file being NULs and a few checksums. That leaves 800 bytes of "who knows what" binary and 800 bytes of exploit code.

Here's what I plan to do: remove the Zelda savegame from my Wii entirely. Then, play Twilight Princess, walk to where I need to be, and save the game once. (I'll also document these steps--though they can hardly be scripted, I can see why someone might wish to follow them to get his own zeldaTp.dat for a starting point) This will be my base zeldaTp.dat file. Each change I need to make to turn that into the exploit savegame will be contained in the source code (the Makefile, or whatever). If possible, I'll also justify it (e.g., "offset 0x2b5 holds the start address of the explot code").

This situation isn't all that much different than getting an image or a sound from a binary container format. The "preferred form" can be a binary format (though some binary formats are better than others--xcf is better than png is better than jpg, for instance). If I successfully do what I describe above, I'm pretty sure I meet the spirit and the letter of the GPL.

Entry first conceived on 10 June 2008, 18:10 UTC, last modified on 15 January 2012, 3:46 UTC
Website Copyright © 2004-2021 Jeff Epler