Miscellaneous Forums > Misc. Tools

[FFX] Skill editor - Ronso (v0.3.1.0)

<< < (11/13) > >>

Rospark:

--- Quote from: -Ori on 2021-11-02 01:50:33 ---the link from the first post actually isn't dead - i just downloaded it, but you may have to right click on the link, copy it, then paste in a new tab/window

these forums have been doing that for awhile, ever since the switch to https i think - and unfortunately there's not much of a maintenance crew here to fix things either

--- End quote ---

I managed to download the file, unfortunately it does not work with the steam version apparently, as well as the PCSX2 emulator, in both situations I get an error that says "Could not find" address.bin ", will attempt pattern scanning for data tables. .. "

I don't really know what the problem is, but I'll keep trying and see if I find any solutions (I have .NET Framework installed)

EDIT: I found the solution, and it is to change the language of the game to English.

homersimson:
is there anyone that is creating a general editor for final fantasy x pc version like the one created by trilititi for final fantasy 9 ?

fireYtail:
Hello, I've had this tool for a long time, but have only been using it a lot lately, with the Steam HD remaster version. I have some experince with cheating/hacking FFX since back in the PS2 days, before the remaster was a thing. I also have experience with the Steam version itself. I've been using a combination of several tools along with Ronso (Cheat Engine, Farplane, FFXED...) to edit/alter the game, as well as figure out many unknowns and some issues with this Ronso skill editor, and with how the abilities tables and the text tables work and can be altered.

I have no contact with fuzzymilipede or pbirdman, the two names that always this sort of FFX stuff leads me to, since no one else seems to be much interested, or know much about the game internally. This forum thread is the only other thing that I have ever seen other than those two, that has been really useful and proves that there's a person very interested in the game behind the tool. Even if I don't see people talking about this tool much, at least it seems as if this is the only place where someone will want to hear what I have to help, and to have some questions answered or get some help myself, because I have to do everything on my own, that's how it's always been for me. I hope someone will reply to me, and not that this post is forgotten and dies with no answer whatsoever. Although, maybe I'm hoping too much here... People seem to be really interested if I have something to give them, like stuff that they can do to alter the game, but they're the ones that just want the guide and the fun, people just want for me to release stuff for them, but they lose all interest when it comes to something that doesn't come with an easy tutorial attached to it. No one seems to be willing to help or share their knowledge.

That being said, the reason I'm posting here is to, besides announce once more my interest in this masterpiece game, share what I have researched on my own, hoping that at least someone will silently benefit from my knowledge, even if I never ever hear from that person's existence at all.

Unless otherwise mentioned, I'm refering to the HD remaster in Steam with language set to English (since Ronso will error for any other language, tested them all). Despite this, many of what I know applies to all versions of FFX, except for obviously content that was not available in other versions (such as all the changes originally introduced in the "international" release of the PS2 version in Japan, as well as these being the only PS2 versions that made it to Europe/PAL)

First of, as already mentioned, the Ronso tool will fail to find any data on the FFX.exe process, unless language is set to English. This is so despite the insistence within the tool, as well as the OP here, that this should be compatible with all languages. I'm guessing they meant all PS2 versions, since this tool is apparently compatible with certain PS2 emulators running FFX (I have not tested that, not that I can remember)

For me, this tool will always allocate two ability tables and two string tables (for names and descriptions), but at least three of each exist in the Steam version. One contains abilities accessible to the player and their respective text, another contains many enemy abilities with also their respective text, those two are found by the tool without a problem (only with the language restriction)

However, I'm aware of the existence of another table for enemy-exclusive abilities, and its corresponding text table for strings. While I've had no luck so far to allocate in memory and copy to a file the contents of the ability part, I found the whole text table, and translated all of its contents to readable text through trial and error methods. This, not coincidentally, is an exact coincidence of what I have in an old Cheat Engine table for the Steam version, to add any ability in the game to the player's inventory (also created through trial and error, with some help of previous knowledge from doing the same thing on the various PS2 versions). This third table contains many many enemy-exclusive abilities that are notably missing from those found by Ronso, such as Seymour's (as an enemy), Lord Ochu's, Chocobo Eater's, Evrae's, the boss right before Yunalesca (move trigger command battle), Yunalesca's, Overdrive Sin's, Sin's Core's, Braska's Final Aeon's, Yu Yevon's, among others... And, if the Cheat Engine table is right, there should still be a fourth table, containing Dark Aeons, Penance, Shinryu, Nemesis, boss right before arriving to Zanarkand, Defender boss, Guados, machines, Cactuars, endgame random encounters... all of which are still missing with these three text tables, but found within the CT, but I have yet to search for those strings in game memory and translate to see if it coincides (which it should)

Guess I'll upload this Cheat Engine table, as well as the the three abilities and text tables (except the ability one I'm missing), to Google Drive and link it here. The tables are provided both raw (as an huge ass array of bytes, useful to find it quickly in memory without pointers), and translated to readable text (new line means end of string). I will upload as well what every of the possible 256 values within a byte translates to in FFX (with English language), so text can be translated in either direction. Note that this translation reference was done by myself with trial and error (as always...), and as such isn't perfect or fully documented.

https://drive.google.com/drive/folders/1oDBKrlSWngLW3SAGe_XFZzGITk2s73Yz?usp=share_link

I also have some feedback about an issue with the "reset" option in the tool and what some of the unknowns do, are related to, or how they behave... The reset if used will break the other enemy tables, despite those not being found/listed by the tool, so it's best to save an uncorrupt "reset" file and load from it instead. I will add that to the link, too.

"Exit?" additional flag is used by all self-destruct abilities to eject the user. It is not used by anything else, like "Escape" or "Dismiss", and eject is a status to the target which has nothing to do with the flag.

Byte 27 listed as "Unknowns 1", indicates which menu (if any) the ability calls. For Doublecast this is 1 (Black magic), for Overdrives other than Yuna and Rikku 4, for "Summon" and "Grand Summon" 5, for "Items" and "Quick Pockets" 6, for weapon change 7, for armor change 15, for "Switch" dummy command 10, for "Use" 17, for "Mix" 20, for "Spare Change" 21, for "Pay" 22. This corresponds to "Category", in other words, all black magic spells are category 1, all Overdrives are category 4. Doublecast itself is a special, as for "Swordplay" being listed under Overdrive, and "Spiral Cut" being listed inside Swordplay, there's another unknown byte that determines this. Setting "Mix" to 4 instead opens a submenu with all already "learnt" results (used results that are displayed in Overdrives menu outside of battle). If Rikku had never mixed, then it'll be grayed out, much like summoning in the final battle. Setting "Grand Summon" to 4 will gray out, since Yuna doesn't have access to any other Overdrive.

Byte 26 listed as "Unknowns 1" is this one I was talking about, Trigger Commands are 1 (only show in certain battles?), main menu (such as "Skills") are 9 (don't show grayed out, hide instead), Overdrives (left button) are 17 (always show), but setting this to 0 makes it be in a submenu, such as "Type Reels" or "Spell Fury", these are 0 so "Slots" or "Fury" must be opened first. This is also how skills, specials and spells are each inside their menu, not outside on main.

Byte 29 listed as "Unknowns 2" determines who should have access to the ability, "Summon" is 1 (Yuna), this is why only she can see the command despite it being one that is unlocked to everyone by default (internally in the save data), but since the usage is restricted to Yuna it won't appear on anyone else's menu. This is also how Overdrives are exclusive to a character or aeon, since in the save data it's only a yes/no for everyone, but this byte determines that each Overdrive must only be accessed by X user, so they won't show up for everyone else. 255 means everyone, so setting "Summon" to 255 for example, means that everyone has the "Summon" command (game can softlock if summonning underwater, in Home or against Evrae, aeons will T-pose underwater, Shiva is very funny). For Overdrives it's the same, setting Fury to 255 means everyone has it listed. The order, from 0 to 17 (decimal), is: Tidus, Yuna, Auron, Kimahri, Wakka, Lulu, Rikku, Seymour, Valefor, Ifrit, Ixion, Shiva, Bahamut, Anima, Yojimbo, Cindy (or all sisters), Sandy, Mindy. This is also how the "Attack" commands for all aeons except Yojimbo and Magus, as well as aeon subcomands like Sonic Wings, are restricted to only one aeon, since in the save data those are, again, abilities that you either have or do not have, regardless of user. So setting "Sonic Wings" to 255 will list it for everyone regardless of save data. The "Attack" command that says in its description to use a weapon, as well as every right-side menu command for both characters and aeons, is individually learnt or not learnt for every character. This is how permanent party members have one set of right-side menu options, aeons have another, and Seymour only has "Escape" by default, despite all of those having its byte 29 set to 255, it is save data that determines who has it learned. In other words, if the save data lists it as learned, if this byte is the same as the current turn or 255, and if the current turn character has, if needed, the ability individually learnt, only then it will be displayed. Should anything fail, it won't be listed. Needless to say every ability on the sphere grid is 255.

Byte 31 listed as "Unknowns 2" appears to be related to targeting, and if set improperly will disallow target selection and simply skip the turn, that's all I know for this one, sorry.

Byte 33 listed as "Unknowns 2" indicates which side of the main menus the command is to be located, 0 is main (or in a submenu due to byte 26 being 0), 8 is right-side (weapon, armor, escape, shield, boost, dismiss), 16 is left-side (Overdrives and trigger commands, the game simply checks if gauge cost is 0 or not to determine if it's an OD or trigger)

Byte 34 listed as "Unknowns 2" has to do with the tier of a spell, most probably the reason Lulu has different casting animations for different spells. Tier 1 is 19, tier 2 (-ra) is 3, tier 3 (-ga) is 35. Skills are 4, most specials are 0, most Overdrives are 1, trigger commands are 8.

Byte 35 listed as "Unknowns 2" is related to the animation when the user is about to use the ability, not the animation of the ability itself. For example, setting an Overdrive to 0 will remove the orange aura and the use Overdrive sound effect. Most commands other than Overdrives are 21, ODs are 4.

Byte 92 listed as "Unknowns 2" seems to be for non-aeon Overdrives, most often pointing which screen must appear for the player to enter input for the OD. Setting this to 0 will bypass the input screen as successful, in most cases completely removing it. However, there are a few things to keep in mind. For Tidus, "Blitz Ace" requires interaction in-between unlike his other 3 ODs, this means that the screen will still appear and no matter what the player does, the animation will display as failed, but the 9th hit will be done to the enemy, although with a power of 4 (not with a power of 24 as it should be). This can be fixed by changing the hit amount to 14, the final 6 hits will be all power 4, making it the same as one power 24 hit. Setting the hit count above 16 will crash the game regardless of animations. Slice and Dice correctly displays the 6 hits without any input screen. The other two also work as normal but without input. For Lulu's Fury, it's always skipped and 16 spells are used (unless the number of hits is manually decreased for each Fury). For Wakka's Reels, the animation must be set to the proper result, if you set the byte to 0 but don't change the animation, the slots will still appear, although the three rolling parts will be empty, but input still changes the result even if you can't see anything. Changing the animation will skip the slots input screen entirely. For Auron, input will still be requested if the byte is 0, but failing the input has the successful effect anyway, inflicting delay, eject, full break, or hitting twice. However, much like "Blitz Ace", "Tornado", even with successful input, will display the animation of only 1 hit, despite the enemies receiving both hits correctly. The power of the hits is also correct, not needing any workarounds this time.

Finally, I've been editing abilities to add status effects, either inflict or remove, and I noticed that apparently going beyond 10 effects in total will unset some of the effects if I go to another ability and then come back. Is this a glitch in Ronso, or a limitation of how the abilities are implemented in the game? Becuase I can't have more than 10 simultaneously. It's a bit of an annoyance keeping in mind that each break status is separate, making full break take 4 of the 10 possible statuses.

I hope I was understood and I receive a reply from someone someday. Until then.

Karifean:
Seems everyone trying to figure FFX's internals out is kinda scattered all over the place. I've done some work on figuring out the actual data files and scripts of the HD version myself; not in-memory but rather the very files the game loads (you can extract them from the FFX_Data.vbf in the installation, the ffx_ps2/ffx/master is the root for data files), so I can tell you that yeah there's two more skill tables - one more for enemies as you thought, and the other is for items; in the vbf archive, the relevant files are named command.bin, monmagic1.bin, monmagic2.bin and item.bin and are found in the active locale's battle/kernel folder. It doesn't seem like the data structures there match up perfectly to the in-memory ones, unfortunately, but after tinkering with Ronso for a bit myself I figured I'd rather go that route.

There's no in-game limitation on the amount of status effects on an ability, otherwise Sin's "Negation" move would well surpass it.

fireYtail:
You're right, I wasn't looking at the command IDs properly, there are 3 sets of command IDs, so must be tables just like you said. IDs 2000 (Potion) to 206F (Winning Formula) are items, IDs 3000 (Attack), 3001 (Item) to 313F (Extra 39) are the player abilities that Ronso is also able to find, including battle menus and unused slots, IDs 4000 (Attack), 4001 (Command 2) to 412B (Extra 44) are the enemy exclusive commands found by this tool, while IDs 6000 (Attack), 6001 (Special 1) to 60F6 (Mind Blast) are the enemy commands not found/listed by Ronso. The whole strings list is, as I said, in the link I provided.

I know that FFX&X-2 on PC use the same game engine as the FFXII remaster, and as such contain all data files within a huge VBF file that can be accessed with tools made by FFXII modders, to see its contents, to extract files and folders, as well as to reinject edited files/folders. However, all game files being contained within a single file in your game folder, means that you must keep a backup of the huge original VBF file at all times if you're going to inject edited files into it, otherwise changes will not be reversible without redownloading the whole game, potentially permanently breaking your game until redownload. Since it's so tedious to have to unpack/repack the whole VBF to make permanent mods, as well as keep a backup to not mess it up, modding the game files directly is not within my plans. Also, it's not within my plans because the VBF file is too big to upload anywhere or for anyone to be willing to download that just to have the game modded, plus I have little to no idea of the formatting of the files within the VBF other than the prerendeded videos and the texture files. FFX VBF file is 19,2 GB, while X-2 is 16,6 GB and FFXII is 29 GB. This means that uploading all that to a website and requiring people to be willing to download that much data isn't but a fool's way of thinking. So, if you are to make and share a mod, memory is the only way to go about it, since it doesn't require people to download 19,2 GB.

Thanks for the clear up on the status ailments issue, must clearly be a glitch with Ronso. I guess I'll locate what bytes are being edited by Ronso to add the statuses and make the changes to memory without reversion glitches by using some other software to edit those memory locations without them having their values reset.

About what news I have on my findings, it looks like the game allocates the whole command data table, about 4 bytes in-between, and immediately after that the string table that is refered to with offsets in the command table, also all together. Since each command is 96 bytes, each string must end with a 0x00, and I have the raw string table that Ronso does not find, this means that it should be pretty easy to find the command data as the end of that table should be a few bytes before the beginning of the strings. As the skills have a fixed size, this will make it so much easier to dump and edit the skills in whichever ways desired, I just have to count the amount of commands, multiply by 96 and go backwards in memory that ammount of bytes. The command tables seem to be preceeded by many separator bytes, and the same thing happens after the last string, which is also useful. But the three sets of tables are separated from one another...

I have been very recently able to make a command that calls the "Mix" menu in normal selection mode, not in "must combine two options" mode. This was a big success, as many commands that could be hacked into the inventory cannot be used because they only showed up in the "Mix" menu, not under "Items" or "Use". The "Mix" menu is also the only battle menu in the game that allows over 24 commands to be displayed and selected, to be exact as large as your whole inventory (112 commands). Guess I achieved what many always considered impossible, to use commands that are not in the items or player tables, without having to manually make a copy of those commands to one of these two usable tables, but instead through one modified command that calls the inventory in a special way, and inventory modification be it in save data or directly in memory, to have commands other than those normally obtainable as inventory commands (item table). And it's functional! I was able to use commands like Banish, Break or Silence, which again were thought impossible to use without copying the commands and using the copy (or selecting them in enemy control debug mode, however this will only allow using the command as the enemy - and most enemies don't have all of their commands on their menu, so only the AI can use them)

Still unable to "unlock" Yojimbo and Magus Sisters out of their limited set of commands, and attempting to modify their commands seems to crash the game. Any help provided would be appreciated (Other than workarounds such as changing party member's models so that they appear as aeons, I already know that one). Yojimbo and Magus seem to have "Defend" animations even though it's impossible to do that without hacking, and not only that, Yojimbo also has casting magic animation which is also impossible to use by normal means.

I was also recently able to have multiple aeons (Magus or other) against Seymour Natus/Flux, to find out how he handled the "Banish" command. He uses it on a random aeon and won't do it again until his next turn. Interesting!

Aeons are also immune to eject, this is, an aeon using Banish on itself will become invisible but other than that be unaffected and display the "Immune" text. This makes no sense, right? Since the only one to ever eject an aeon is Seymour when he uses Banish, but he has to secretly remove the immunity so that it won't fail... Which is stupid (eject cannot bypass immunity as it can only have a 0 chance or 254 chance, unlike most other statuses - doom and curse also work this way despite being negative ailments) - In other words, it's not possible to make a command with a 50% chance to eject, doom or curse.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version