Bank C3 Compendium
|Game||Final Fantasy III|
|Release Date||11 July 2016|
|Last Modified||14 October 2016|
A set of fully commented disassemblies and complementary documents pertaining to bank C3 from the SNES and SFC versions of Final Fantasy VI. The bank handles all of the field menus, as well as ending scenes that are beyond the scope of the event program.
The archive includes:
- An optimized disassembly of bank C3 that saves more than 14,200 bytes while retaining the simplicity and flexibility of the original code.
- An optimized disassembly of bank C3 that seeks to maximize free space without regard for practicality. As it stands, the bank is reduced by 26,054 bytes, and is consequently 42.3% smaller.
- An alternative version of the heavily optimized disassembly that sacrifices an insignificant amount of space in favor of definitions for global text arrays.
- A reassemblable, unmodified disassembly of bank C3. Recommended for projects of limited scope or for testing purposes. Useful for reverting modifications, for locating data, or for determining loop points or entry points.
- A basic disassembly of bank C3. The main purpose of this document is to provide the address of every instruction in an unmodified game.
- A basic disassembly of bank D4, which acts as an extension of bank C3. A reassemblable, unmodified version is also available.
- A basic disassembly of bank C2, a hodgepodge in terms of content, purged of code and data irrelevant to bank C3.
- A complete memory map, one for the menus and one for the ending, that details the structure of both RAM and VRAM.
- Scripts, tools, character tables, and define-type directives for compilation purposes.
- A folder that contains two copies of bank C3, one for each console, that have been specially formatted for side-by-side comparison. Also included is a list of noteworthy version differences.
- Release notes that include additional information such as abbreviations and compilation instructions. A list of bug findings as well as content that has been cut may be added in the future.
Given the abundance of memory available, the implementation of labels for RAM addresses was dismissed as impractical. In the same vein, the size of every instruction is not explicitly specified at this time.