• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 01:47:17 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Nax

1
Hello there,

Today, I'm making the first public prerelease of TacticsCrafter, my WotL modding tool.



This is more or less a reboot of Chantage, my previous project. Mods can be written using lua, calling a bunch of functions to patch bytes and/or apply ASM. Unlike Chantage however, this time, mods are applied to the .iso ahead of time.

Here are the links to:
 * The tool
 * The documentation
 * A repository of scripts

2


Hello there,

We've been working on a War of the Lions ModLoader named Chantage for a few weeks now.
Chantage is a mod loader for FFT: WotL, as well as an API to make mods play together nicely.
Mods are loaded from the memory stick at runtime, instead of needing to be patched
Right now the API is in a very early stage and cannot be used by mods directly, but basic mod loading work!

Because chantage is language-agnostic, you can develop mods in other languages than assembly. Chantage itself is made in C, and it's also possible to make mods in C++, or any language that can interface with C. It is still possible to make pure-assembly mods or to mix languages if you need to for some reason.

Rationale
Because chantage can run mods off the memory stick, and because it offers a common API to write mods against, it will eventually be possible to create mods that were thought to be impossible to make, such as:

* Creating new items/jobs/...
* Interfacing these items/jobs with the ENTD
* Adding new maps
* etc.

Usage
Right now you must patch your ISO in order to load chantage itself. However, future versions will allow for alternative ways to load the mod loader, such as cheat codes (for cwcheats or similar) or a PSP plugin. This would make it possible to run chantage mods with an actual UMD.

To install chantage:
* Download and extract the zip file
* Apply chantage.ppf to a clean, EBOOT-Decrypted US iso.
* Copy the whole PSP folder from the zip file to your memory stick.

How to install mods
* Copy the mod's .prx file into /PSP/GAME/ULUS10297/mods
* Open /PSP/GAME/ULUS10297/mods.txt with a text editor of your choice
* Append the name of the mod's .prx file at the end of that file

For example, to install a mod named abc.prx, copy it inside /PSP/GAME/ULUS10297/mods, then append "abc.prx" without quotes to /PSP/GAME/ULUS10297/mods.txt, on it's own line.

The chantage .zip includes slowdown_fix.prx, a chantage-compatible version of the popular slowdown fix.

Creating mods
Will be updated once the API is ready.

Credits
Thanks a lot to Quantumpencil & dzhu.

Download
You can find chantage (pre-)releases on GitHub: https://github.com/FFT-Hackers/chantage/releases
3
Hello,

I just finished building this simple tool: https://github.com/Nax/FFT_Decrypt/releases

It can be used to decrypt EBOOT.BIN in-place in the WotL iso.
The main use case would be to implement this suggestion.

It's very simple: you select your ISO and click "decrypt" to decrypt EBOOT.BIN inside.
The tool will warn you if the ISO is not a valid WotL image. Also, it will warn you if it's already decrypted (but you can force the decryption anyway).

It work on E and U ISOs.

Enjoy!

4
Right now it seems most (if not all) of the PPFs on the forums are made against the retail WotL ISO.
This is rather infortunate, because patches that touch EBOOT.BIN have to decrypt it first.
This means that every single patch has the whole unencrypted EBOOT.BIN embedded as a difference.

This is troublesome because it makes conflicts virtually guaranteed on every patch.
While workarounds exists (such as rebuilding EBOOT.BIN from BOOT.BIN and hoping this one did patch properly), it's error-prone and unreliable.

I suggest we make our PPFs against an unencrypted, but otherwise clean WotL image, such as the one that can be generated from FFTPatcher.

It makes the diff much, much smaller. Also, it should make applying multiple patches work out of the box for the vast majority of them.
Of course it would require end users to actually unencrypt their ISO, but with FFTPatcher this is absolutely painless.

As an example, the famous Slowdown Fix, which is 4034291 bytes long (or about 3.84 MiB) becomes 120 bytes long using this method.
For reference, you will find this patch attached.
5
Multiplayer Content Availability Patch





Hi Guys,

I just finished the first version of this patch and thought you may enjoy it.
The Multiplayer Content Availability Patch aims to bring the new WotL multiplayer-exclusive items to singleplayer.

This patch should only be applied to an US iso.

As of now, every item but the fell swords and the onion stuff (minus the onion sword) can be obtained.

Some of the items can be obtained by catching them from high level ninjas, the other by stealing them from high-level ennemies.
This patch aims to be as vanilla as possible, but certain changes to the old items were unavoidable (see changes).

Changes from vanilla WotL:

PSP Items:
* Moonblade can be thrown by level 97 ninjas
* Onion Sword can be thrown by level 98+ ninjas
* Francisca can be thrown by level 92-95 ninjas
* Golden Axe can be thrown by level 95+ ninjas
* Orochi can be thrown by level 97 ninjas
* Moonsilk Blade can be thrown by level 98+ ninjas
* Vesper can be thrown by level 96+ ninjas
* Durandal can be thrown by level 97 ninjas
* Gae Bolg can be thrown by level 95 ninjas
* Gungnir can be thrown by level 96 ninjas
* All other items can be stolen

PSX Items:
* Sasuke's Blade is now thrown by level 94 ninjas
* Koga Blade is now thrown by level 95 ninjas
* Save the Queen is now thrown by level 94 ninjas
* Excalibur is now thrown by level 95 ninjas
* Ragnarok is now thrown by level 96 ninjas
* Holy Lance is now thrown by level 93 ninjas
* Dragon Whisker is now thrown by level 94 ninjas
* The genji items can be stolen

Changelog:
* 0.1.0: Initial version, with the ninja throwing PSP stuff
* 0.2.0: Updated the patch so ennemies start with PSP stuff equipped.
* 0.3.0: Limited the generation of PSP-exclusive items, as way too many ennemies started with a full gear of them.

Technical Details:

For the ninja throwing, the patch modifies the following instructions:
At 0x89B1A58, change sb to sh.
At 0x89B1028, change lb to lh.
At 0x89b1030, change the immediate 0x100 to 0x13C.

The first two changes are necessary to make the throw command 16-bit aware on the AI side.
The last change is necessary to make the AI consider the new items as potentially throwable.
Please note that the first two changes are technically unsafe, as we move 16 bits in and out a field supposed to hold 8. However, the byte immediately after the thrown item field seems unused, so this should not cause issues.

For the enemies equipped items, I had to change way too many instructions to list them all, but it was mainly a matter of rewritting the AI equipement selection routine, and patching a lot of instructions that masked registers to 8 bits, so they mask them to 16 bits instead.

Have fun  ;)

EDIT: Added an alterative PPF based on a decrypted ISO. It is much smaller and work out of the box with other patches (like the slowdown fix).

EDIT 2: The 0.3.0 patch was corrupted due to a stupid PPSSPP bug, please use 0.2.0 in the meantime.