Skip to content

Releases: Glain/FFTPatcher

FFTPatcher suite 0.497

15 May 22:02
Compare
Choose a tag to compare

General

  • Spinners (numeric value boxes with up/down arrows) now increment by 1 with mouse wheel.
  • Type-ahead resets more often (see #15)

FFTPatcher

  • Usage highlighting expanded for jobs, abilities, and skillsets.
  • Now has Save Patch XML functionality.
  • Now opens Resources.zip without locking the file (for reading).
  • Now updates form values when the menu is accessed (by focusing the menu). Prevents saving without form values being updated.
  • Fixed an issue where the View Stat form could show raw stats going over maximum.
  • Fixed an issue where the View Stat form could calculate negative values.
  • Updated Items tab Inflict Status/Cast Spell label to just Inflict Status.
  • Changed default names for initial and unused Shop Progression values.
  • Updated some formula text.

FFTactext

  • Now has a search feature!
  • Currently loaded text now saves to .ffttext file even if it doesn't adhere to the parameters in PSXText.xml or PSPText.xml.
  • Fixed an issue where text entries could be loaded incorrectly if defined section length exceeded actual section length.
  • Generate Resources.zip now XML encodes text entries (to prevent errors parsing the file).
  • Generate Resources.zip should now generate MapNames.xml correctly.
  • Fixed {SP2} character width to be 10 instead of 4.
  • Fixed an issue with Quick Edit where an entry could be created for a file that didn't exist.
  • Can now save patch XML.
  • Improved error message when encountering an invalid text string.
  • Added additional text sections (EQUIP.OUT 01, WORLD.BIN 12, WORLD.BIN 13)
  • Skillset descriptions now have 189 entries (from 188).
  • PSX map menu section now has 17 entries (from 1).
  • PSP patches now contain Ability Quotes.
  • Fixed an issue where an error could be encountered if selecting Cancel from the Load from ISO dialog.
  • Now displays a more specific DTE error when attempting to patch a text section where the text exceeds the space limit and DTE is disabled for that section.

Shishi

  • Sprites and Other images now support PNG!
  • Can now import all sprites and images, and patch metadata, via command line.
  • Sprite flag checkboxes replaced with height dropdown.
  • Reloading all sprites/images now refreshes the current sprite/image.
  • Fixed format of World Map Ramza in Other Images.
  • Fixed an issue relating to copying the current frame rectangle when switching the spritesheet or palette.
  • Sprite type FOUR is now called OTHER.
  • Now includes OTHER.SPR in Other Images.
  • Can now load and save .shishipatch files, for metadata changes.
  • Expanded command line patch functionality.
  • Updated references to OPENBK so they now use OPNBK.

FFTorgASM

  • Can now patch PSP ISO with appropriate PSP XML patches!
  • Can now patch entire binary files with binaryFile attribute.
  • Now has selectable option for Resolve Conflicts functionality.
  • Resolve Conflicts functionality should now preserve alignment when moving ASM.
  • Resolve Conflicts functionality can now detect and move conflicting changes more effectively.
  • Fixed an issue with moving patches where references were not being updated correctly.
  • Fixed an issue where label values were not being reset on a per-patch basis.
  • Fixed an issue where labels defined after they were referenced could cause label replacement to fail.
  • Fixed an issue where the align attribute was not being read correctly.
  • Fixed an issue with Save Patch XML where the text was not being XML encoded properly.
  • Fixed an issue with the patch list that could occur when reloading a file.
  • Fixed an issue where ASM patches that include other patches did not copy variables correctly.
  • Spacebar can once again toggle patches.
  • XmlPatches directory is now configurable.
  • Now shows a red error message when selecting a file that did not load correctly.
  • Save Patch XML button is now on the patch form.
  • Form layout and anchoring: search bar now resizes horizontally with the form, and clear button is now anchored right.
  • Left arrow key now focuses file list and right arrow key now focuses patch list.
  • Moved version label.
  • Updated some patch XMLs.

EntryEdit

  • Improved error checking around battle conditionals when loading from save state.
  • Variable commands now use unsigned values.
  • Now creates Event directory if necessary when exporting all event scripts.

MassHexASM

  • (LEDecoder form) When decoding a binary file, the input file is opened without locking (for reading).

ASMEncoding

  • sltiu now uses unsigned immediate.
  • Using .if with one argument now does an integer comparison and treats the argument as a variable.
  • .if now supports one single value and tests if non-zero, e.g.: .if %UsingTLW
  • Fixed issues relating to handling variable values in .if statements.
  • Fixed an issue related to multiple labels being defined on one line.
  • Fixed an issue where referencing labels that were defined later than they were referenced could cause incorrect code size and address calculation.

FFTPatcher suite v0.494

27 Nov 23:36
Compare
Choose a tag to compare

FFTPatcher

  • ENTD jobs can be any byte value, and names only come from valid jobs.
  • Element names and colors are now customizable through Settings.xml.
  • Ctrl+Up/Down now selects previous or next entry, respectively, for many tabs.
  • Generate Resources, Extract FFTPack, and Rebuild FFTPack now use the appropriate directory selector. The old directory selector should no longer be used anywhere.
  • Job levels are now color coded.
  • Fixed an issue when using out of range inflict status IDs.
  • Fixed an issue with sprite names in the monster portrait and monster type dropdowns.
  • Updated some labels.

FFTactext

  • Now handles the {Close} character (0xFF) properly as a sentinel value (end of entry). This changes the number of entries in certain sections (primarily battle menus and sound novels). {Close} characters that aren't at the end of an entry are now ignored. Currently existing .ffttext files can still be loaded in as normal, and {Close} characters should be handled appropriately, resulting in the correct number of entries per section.
  • Now contains a Hex column next to the Entry column.
  • Post-battle dismiss quotes are now marked as not compressible (fixes text bug with monster dismissal)
  • Generate Resources XML now includes SpecialNames.xml (with updated entries).

FFTorgASM

  • Now attempts to automatically resolve conflicts on patching!

  • Now writes all selected patches, even in different XML files.

  • Sort and search features added for the patch list.

  • Patches are now only checked or unchecked when the checkbox portion of the entry is clicked.

  • Clicking Patch now shows all patches that will be applied in a separate patch form as an intermediate step. Patches can be selected or unselected from this form, and then clicking Patch from this form allows selecting the file to patch.

  • Variable Presets can now be defined to allow users to select from a dropdown list of possible values for a variable. e.g.:

    <Variable name="Item Type" file="SCUS_942_21" offset="4CE24" default="0F">
        <Preset name="Lance" value="0F" />
        <Preset name="Stick/Pole" value="10" />
        <Preset name="Bag" value="11" />
        <Preset name="Carpet/Veil" value="12" />
        <Preset name="Custom" modify="true" />
    </Variable>
    
  • An automatic variable preset can be added by specifying a "boolean" preset on the tag itself. This adds True (01) and False (00) one-byte presets. e.g.:

    <Variable name="Use MA" file="BATTLE_BIN" offset="F5BCF" bytes="1" default="00" preset="boolean" />
    
  • Now has a single patch button and patches to ISO or save state depending on file selected.

  • Fixed an issue where the align attribute could be ignored.

  • Now shows an error for missing dependency patches.

  • .if and .endif can now be used for non-ASM patches.

Shishi

  • Sprite editor uses generic palette names for WEP1,WEP2,EFF1,EFF2,TRAP1.

FFTPatcher suite v0.493

24 Nov 19:06
Compare
Choose a tag to compare

Introducing EntryEdit!

  • Edits Battle Conditionals, World Conditionals, and Events. Loads/saves to patch files, script files, disc images, and pSX save states!
  • Customizable by editing EntryEdit.exe.config and associated XML files. Defaults are vanilla, but has pre-built support for Event Instruction Upgrade by setting "ModSuffix" to "Upgrade" in the config file.

FFTP suite now includes MassHexASM.

FFTPatcher, FFTactext, and EntryEdit can open patch files directly (.fftpatch, .ffttext, .eepatch) via command line. Also works with file association in the file explorer.
Icons added for FFTPatcher, FFTactext, and FFTorgASM.
Version number of the FFTP suite now displayed in the title bar of the appropriate programs.

Command line patching is now supported for FFTPatcher, FFTactext, FFTorgASM, and EntryEdit by using command line arguments "-patch" and then specifying the patch file and disc image (or pSX savestate). There is generally no output on a successful run (unless FFTorgASM is warning that files appearing in patches are either unsupported or not present in the specified savestate), and an error message can appear in the console if there is a problem. If the program opens up its normal window, then there was something wrong with the passed arguments (file(s) not found, etc.)
By default, the console does not wait for the program(s) to finish, because they aren't configured as console applications. Using "start /wait" will make the console wait.
Examples:

        start /wait "Patch" FFTPatcher -patch patchfile.fftpatch fft.iso
        start /wait "Patch" FFTactext -patch patchfile.ffttext fft.iso
        start /wait "Patch" FFTorgASM -patch patchfile.xml fft.iso
        start /wait "Patch" EntryEdit -patch patchfile.eepatch fft.iso

File operations that open the disc image now open the file only for reading where appropriate.

FFTPatcher:

  • Added type ahead functionality to the Proposition Details editor. ESC to clear the search, like in all the other areas.
  • Expanded the job box in the Proposition Entries section.
  • File checkboxes inside the patch PSX/PSP form now check/uncheck with a single click.
  • ENTD unit table now displays (X,Y,UpperLevel), UnitID, Always/Randomly present values, and Team.
  • ENTD unit table colors rows based on team color, and fades rows when units are not Always present. Enabling and disabling this feature, as well as changing the colors, can be done by editing Settings.xml.
  • Conditional Gameshark codes now generate in appropriate Gameshark format and use better file checks. Added ATTACK.OUT and REQUIRE.OUT file checks.
  • Formation sprite entry values for special jobs (0x00 to 0x49) are now editable via FFTPatcher in the Jobs tab. There are two new values labeled "Formation Sprites" that correspond to the entry numbers in UNIT.BIN and WLDFACE.BIN.
  • Fixed some issues relating to Proposition level bonuses. FFTPatcher generates patches to apply a fix to propositions (since before .478 - apparently, the game checks for level bonuses in the wrong place), but they don't show up in the Gameshark tab and won't actually apply unless you select the Propositions checkbox on the appropriate patch form. However, it will no longer load the wrong values, and will no longer try to mirror the level bonuses in the grid.
  • Added the blue color for changed entries to the list boxes on the left side. Now includes Item Attributes and Status Attributes!
  • Rows with Unit (formerly Sprite Set) set to 00 now appear as a blank row in the ENTD unit editor.
  • Item Attributes and Status Inflictions:
    • Additional colors are now used for left side list boxes. Green indicates an unused entry and red indicates a duplicate value in use. This setting and the colors it uses are configurable in Settings.xml.
    • Can now be repointed on a per-entry basis, with all references being updated to the specified entry.
    • Can now be consolidated via the Edit menu, which repoints all duplicates to the first equivalent entry.
    • Now displays how many Item and Ability entries are referencing the selected entry, as well as the ID and name of the first Item or Ability entry to do so. Clicking the name brings up the Item or Ability tab with the appropriate entry selected. Clicking the number also switches to the Item or Ability entry, but also highlights all the other referencing entries with another color. The color can be cleared by pressing ESC. This feature (and color) can be configured in Settings.xml.
  • Now uses dropdowns for M.Graphic (now Monster Type) and M.Portrait (Monster Portrait).
  • Ability 00 is once again listed as because the data there doesn't seem to affect Attack (even though the ability ID does seem to be set to 00 in-game when using Attack).
  • The Chemist Item formula list now uses the same formula list as normal Abilities do.
  • The current patch data can now be set as Defaults via the Edit menu. The normal defaults can also be restored.
  • The Jobs tab now contains a simple stat preview that can be brought up via the View Stats button. This is a new form that allows the user to select base stats, growths, and multipliers to see what the stats are at each level.
  • Cleaned up formatting in the main menu.
  • Updated various labels.
  • Internally, the patch data is no longer static, and there is no longer a static tooltip on the patch editor.
  • Enabled editing ability effects for all applicable abilities.
  • Corrected PSX RAM offset for Store Inventory data (for Gameshark section).
  • Can now patch PSP version slowdown fix.

FFTacText:

  • Fixed an issue with disappearing Proposition text by no longer compressing Proposition reward text.
  • Now uses the same logic to patch, and generates the same resulting disc image, as version .457 would have, with the exception of not compressing the Proposition reward text.
  • Can now generate a Resources.zip file from the File menu.
  • Can now toggle a Use FFT Font option, which uses the Altima font used by the FFTText editor.
  • Added Regulate Newlines option from the Edit menu which inserts newlines after {Newline} if they don't exist, and removes other newlines.
  • In certain error cases, the "Object reference not set to an instance of an object" error is now instead displayed more specifically as a DTE error.
  • Section numbering is now zero-based (as it is in game).
  • Now uses internal C# code to do the text compression instead of an embedded C++ library.
  • Made PSXText.xml and PSPText.xml external files that can be used to configure section entries, DTE, compression, etc. These were previously the internal psx.xml and psp.xml files.
  • Text sections now have at least the number of entries specified in the appropriate XML file, even if text is loaded from a file without those entries listed.
  • Corrected number of entries for Diary of Nanai and Wyuvle.
  • When importing ISO, no longer loads additional entries per section.
  • When importing ISO, uses non-DTE character map for sections with DTE disabled.

FFTorgASM:

  • Many more patches have been added and/or updated, including the addition of several new XML files!
  • Now displays error messages for invalid ASM patches (syntax errors, unknown/illegal instructions, bad label references, etc.) The warning messages shown previously didn't include these; as a result, broken patches could show up normally. They should now display in the error color with the appropriate error messages.
  • Now includes a HideInDefault option for individual patches, or for an entire patch file. This causes the patches to be visible when the appropriate XML file is selected, but not from the All list. Currently used on a few patches in Xjamxx.xml which are modified versions of previously existing patches.
  • Patch checkboxes now check and uncheck with a single click.
  • Added an Uncheck All option for patches.
  • The file list is now always one column, even if many files are added to the XmlPatches directory.
  • The patch list now has type ahead functionality. ESC clears the current search, like in FFTPatcher.
  • Now only runs the error checker when patches are loaded initially (or reloaded) instead of doing it each time a file is selected in the file list.
  • Now supports a default File or Sector attribute which can be specified on the tag and is used if no File or Sector attribute is specified on or tags.
  • In and tags:
    • There is a new "specific" attribute that can optionally be used instead of "file" and "offset" attributes. File names or sector numbers can be used.
      Example:
    • If no File or Sector attribute is specified, and there is no default, the File or Sector attribute from the previous tag will be used. This will mark the block as sequential.
  • For tags:
    • Can now use offsetMode="RAM".
    • Can now have multiple offsets specified in the "offset" attribute, like tags can.
    • Can now reference other variables and perform simple arithmetic to find a value. Supports (+, -, *, /) as operators.
      Example:
<Variable name="Zoom-out value (fixed)" file="BATTLE_BIN" offset="8774" bytes="2" default="0C00" />
<Variable name="Zoom-out value (zooming)" specific="8744" bytes="2" reference="Zoom-out value (fixed)" operator="+" operand="1" />
  • Variables are now added as macros (equivalences) in ASM sections. Spaces are removed in the resulting name. A variable called X will be defined as %X.
  • <Location> tags now support a label attribute which allows the location to be referenced as a label in ASM sect...
Read more

FFTPatcher suite v0.492

11 Jan 23:50
Compare
Choose a tag to compare

FFTPatcher:

  • The ENTD tab now labels and uses a combo box for the Experience field instead of listing it as an Unknown field.

FFTorgASM:

  • Fixed an issue where a selected patch would sometimes not patch to the ISO or save state. This would come up intermittently, and was caused by the patch iterator not being reset properly.
  • Fixed an issue where selecting a variable could cause its value to erroneously change to its maximum value if the previously selected variable's value was higher than the newly selected variable's maximum value.
  • Fixed resizing issues with the main form, including an issue where some of the form elements would size incorrectly after minimizing and restoring (and cover the Reload button).
  • Added a text area to display ASM encoder warnings relating to hazards (load delay, etc.); see ASM Encoder/Decoder section below.
  • Highlights any patches containing possible ASM hazards in red; see ASM Encoder/Decoder section below.
  • The "mode" attribute inside the <Location> tag in XML patches now accepts a value of "DATA". This explicitly tells FFTorgASM that the contents are data and shouldn't be checked as ASM.
  • <Location> tags with offsetMode="RAM" can now use ATTACK.OUT (EVENT_ATTACK_OUT), ETC.OUT (EVENT_ETC_OUT), HELPMENU.OUT (EVENT_HELPMENU_OUT), and OPEN.BIN (OPEN_OPEN_BIN).
  • Revamped the functionality for the Patch to Save State feature (the logic is now much simpler and more extensible).

Shishi:

  • File numbering has been changed slightly when using Expand ISO (Added 1 to some of the numbers).

ASM Encoder/Decoder:

  • Added check functionality that warns about various possible hazards:
    • Load delay (Attempt to use a loaded value from memory immediately after loading it; ignored in PSP mode)
    • Unaligned offset (When doing a memory load or store)
    • Using mult or div within 2 commands of mflo/mfhi
    • Adding or subtracting a value from the stack pointer register ($sp, r29) that is not a multiple of 8
    • Putting a branch inside a branch delay slot
  • Added the ability to use %hi(address) and %lo(address) to get the high and low 16-bit parts of an address. The low 16-bit portion is considered to be signed. e.g.:
    .label @address_current_action, 0x80192d90
    # (...)
    lui t0, %hi(@address_current_action)
    # (...)
    lw t0, %lo(@address_current_action)(t0)
    • Note that %hi(address) will be one higher than first 16 bits when the low 16 bit value is negative.
      • e.g. %hi(0x8018f5f0) = 0x8019; %lo(0x8018f5f0) = -0x0a10 (0xf5f0).
      • This means that the %hi,%lo combination works well with load and store commands, and also with the (lui, addiu) pattern, but not with the (lui, ori) pattern.
  • Fixed some issues with the load and store psuedoinstructions when using values between 0x8000 and 0x10000.
  • Modified the error checking functionality to report more errors, particularly when an undefined label is referenced.
  • Now recognizes GTE and COP0 register names as used by pSX's disassembly.
  • Added beqz (branch if equal to zero) and bnez (branch if not equal to zero) psuedoinstructions.
  • Fixed potential issues with byte order that could have occurred if running on a big endian machine.
  • Added "replaceLabels" optional attribute to the tag in XML patches, which, if set to "true", will replace any labels found in the hex with the correct hex address. The idea here is basically to be able to create dispatch tables using a list of labels if so desired.
  • (Undocumented from last release)
    Added "equivalences" which function similar to macros. Defined with .eqv and are replaced with the specified value before encoding. e.g.:
    .label @address_controller_input, 0x80045944
    .eqv %start_button_flag, 0x0800
    # (...)
    lw t0, @address_controller_input
    nop
    andi t0, t0, %start_button_flag
    # (...)

FFTPatcher suite v0.491

22 Oct 16:38
Compare
Choose a tag to compare

.491 Release

FFTPatcher:
Animations tab:
* Fixed an issue where too much animation data was loaded and saved. The table in BATTLE.BIN that stores these only has 0x1C6 entries, not 0x200, because it doesn't include Support or Movement abilities. That means that the animation tab was previously loading and writing over unrelated data. This should now be fixed. (See this post: http://ffhacktics.com/smf/index.php?topic=7163.msg196902#msg196902)
* Removed the checkboxes. They had no purpose (and took a long time to render when switching tabs!)
* Modified color is now configurable, and has a softer default color (See Settings.xml)

FFTorgASM:
General:
* Fixed various issues with the ASM encoder.
* Fixed some errors related to clicking on empty space or on patches after reloading.
* Switching to a different file now clears the current patch view.
* The Reload button now clears the current patch view, re-loads the right pane and clears all selections. This may alleviate some problems that could occur after using Reload where it appeared that a patch was selected but really wasn't.
* XML patches have been moved to the XmlPatches directory.

Shishi:
General:
* Expand ISO is now a menu option, and opening an unexpanded PSX ISO no longer automatically asks the user to expand the ISO.
* Clicking on the SP2 menu before opening an ISO no longer results in an exception being thrown.

Sprites:
* The warning message that appears when a spritesheet is used in multiple entries now shows the correct ID instead of being off by one.

Other Images:
* Fixed various issues with nearly all image types that affected importing and exporting.
* The main drop-down list now lists sections, and there is another Entry list that presents the specific images within the section. This is to keep the images more organized instead of keeping one gigantic list.
* 4bpp paletted bitmaps with multiple palettes have a palette selector, with an option to import and export as an 8bpp bitmap if desired to store multiple palettes into one 256-color one. The selected palette is used as the start of the exported palette. If not using the 8bpp option, the selected palette is the only one that imports or exports.
* Other Images now save into the BMP format with the correct palettes and the correct BPP (and no longer save as PNG files with a .GIF extension!). Alpha (transparency) values do not export, and when imported, they are ignored in favor of the alpha values already on the ISO. In the PSP version, this means some images export with a green background, but since it's a transparent color on the ISO, it should still be correct when importing. (The reason the alpha values don't import and export is becuase the Microsoft bitmap libraries don't support alpha values for some reason...)
* More files added to Other Images, including FRAME.BIN, ITEM.BIN, BONUS.BIN, EVTCHR.BIN, EVTFACE.BIN, UNIT.BIN, WLDFACE.BIN, and WLDFACE4.BIN!
* There is now an option to Import and Export the entire file on the ISO that contains the current selected image. This can be useful for either copying or reverting a lot of changes at once. If importing, this will overwrite that entire file on the ISO, including any other images within the file, so use at your own risk!
* Added some images that were missed into already existing sections.
* Import All Images and Dump All Images should now work correctly. 4bpp paletted bitmaps with more than 1 palette should import and export as 8bpp images.
* Corrected some image names.
* Internally, the XML files that determine which files are supported in the Other Images section have new functionality ("Repeat" and "Names" tags) for easier future modification.