Author Topic: [FFX] Skill editor - Ronso (v0.3.1.0)  (Read 62283 times)

Rospark

  • *
  • Posts: 7
  • Always hit first
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #50 on: 2021-11-12 09:08:57 »
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

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.
« Last Edit: 2021-11-12 09:16:05 by Rospark »

homersimson

  • *
  • Posts: 4
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #51 on: 2022-04-13 21:50:39 »
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

  • *
  • Posts: 5
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #52 on: 2023-05-10 20:29:41 »
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

  • *
  • Posts: 65
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #53 on: 2023-05-12 19:48:30 »
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

  • *
  • Posts: 5
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #54 on: 2023-05-13 18:00:32 »
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.
« Last Edit: 2023-05-13 18:09:18 by fireYtail »

salemxvii

  • *
  • Posts: 1
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #55 on: 2023-06-02 15:53:34 »
For anyone interesting in FFX modding - there is a channel for it here:

Your link doesn't work and I'm going to remove it just in case. -Bonez
« Last Edit: 2023-06-03 05:55:29 by Bonez »

fireYtail

  • *
  • Posts: 5
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #56 on: 2023-06-12 18:10:22 »
Hello again, I've been messing with FFX lots more, and a mod will be released soon :)

About Yojimbo and Magus Sisters: They ignore the 255/everyone value and only display commands with values unique to themselves. This is, 14 for Yojimbo, 15 for Cindy only, 16 for Sandy only and 17 for Mindy only. Additionally, the Magus Sisters have their middle main menu forcefully overwritten with the giving orders commands plus Dismiss despite the command data saying that its placement should be on the right side (As happens to every other aeon, except Yojimbo who has his own Dismiss). This means that in order for a command to be displayed during a Magus turn, it must be placed on the Overdrive/trigger commands menu, or on the shield/boost menu. It must also contain the same value as the current sister, so for a command to be displayed regardless of sister, three separate ones need to be created, with values 15, 16 and 17 in byte 29.

About "Skill ID": This is wrong, completely wrong. This is interpreted by Ronso as 4 extra bytes at the beginning of every player ability, when it is in fact in reverse, the 4 extra bytes are at the ending of each entry, not at the beginning. Enemy abilities are 92 bytes and player/item ones are 96, because they have 4 extra bytes at the end, NOT at the beginning. This means that the "Skill ID" of the first entry, Attack, is instead data before the command table begins. The last 4 bytes of the Attack entry, are listed as the "Skill ID" of the second entry, but this is wrong, they are related to Attack, not to Item. And so on, the last slot being impossible to modify because Ronso thinks the table ends 4 bytes sooner than it really does. This is also a very big issue when copying and pasting commands, or saving to a file then loading, as it overwrites the last 4 bytes of the previous slot, and leaves the last 4 bytes of the copied or imported slot completely intact.
As to what this does, the first two bytes I have no idea. The third byte in this "Skill ID" which is listed in the next entry than it really is, is only used by items, not by the other player table, and is FF for the great majority of items, with the exception of those usable in the sphere grid. In other words, the third byte determines what usage the item has in the sphere grid, if it is an item and if it has any usage on it. The last byte, or 4th byte of every entry to be exact, is the order, only within battle, that the commands are to be displayed. Lower values will be displayed above higher values. If there are ties, the game sorts all entries with the same value in order as they are found in the table, in other words, if both the 20th entry and the 40th entry are to be displayed simultaneously and both have the same value here, the 20th entry will be shown first, and then the 40th entry, because it is found closer to the ending of the table. If the 40th entry has a value smaller than the 20th entry, then it will take precedence and will go first in the menu. Note that commands exceeding 24 options won't be displayed or selectable, and only 8 for the Overdrives/trigger commands placement as well as the shield/boost/escape placement. So make sure to not have over 24 possible options in the same category.
Outside of battle, for example the "Ability" menu or the "Status" screen, everything is hardcoded, so whatever the original order was will still be displayed, no matter how you changed it. And if you, say, replaced Cure with a new overdrive for Yuna and Grand Summon with a new spell, outside of battle, the game will still read data from the new spell as Yuna's overdrive, and will still list the new overdrive in the "Ability" menu or "Status" screen as the first white magic spell, even if in battle it is something else entirely different. The name, description and icon will be read from the table outside of battle too, except for tutorial text which has the original names hardcoded. In other words, if you swap Spiral Cut and the Fire spell, everyone who has learnt Fire will say, in their status screen, that they know a black magic spell called "Spiral Cut", with the new description and icon but keeping the same original order, so for Fire this is the first spell in the Black Magic list. Similarly, if you open Tidus' overdrive menu outside of battle, in his first slot you will see the Fire spell, even though you just swapped the positions and the data is the same, and in-battle it works as you would expect.

About targets: the bit 4 is set along with "multiple" to mean "can only target the user", such as the "Escape" command. The bit 5, no idea what this does as I don't see any difference. The bit 7 is set for allowing targeting KO allies, for example Life (white magic spell), Phoenix Down, Rikku's Final Elixir, etc. Ignore range is literally that. Ignores range.

About unknowns 1: I only know what the bytes 26 and 27 do. 26 determines if it's a category like Skill with the value 9, if it's directly chosen like Attack, Energy Ray or Dismiss with a 1, if it's chosen inside a category like any spell with a 0 (so the category must be accessed first), if it's some other kind of menu with a 17, or if it's a menu shown within a category with a 16 (like Doublecast and Quick Pockets). And the byte 27 is what category or special menu the command sends you to, should byte 26 be 9, 16 or 17. There are menus all the way to at least 22, some of them are not used by any command in the vanilla game. Changing byte 27 in Doublecast will only change the first menu that is displayed, the second is whichever the command where "Blk Magic" is by default has. This means doublecasting white magic can be achieved by changing Doublecast itself plus swapping the "Blk Magic" and "Wht Magic" commands.

About byte 31: This is indeed what can the command target, this is why all trigger commands have a value of 8 (Since they need to interact with things not targetable by any other commands), and this is what makes the first tier of elemental spells, which have a different value than every other spell, be able to target the Crane when rescueing Yuna in Luca, while also being able to target the boss itself, unlike the Use Crane for Tidus with the 8 value, which can only target the Crane. Other examples are the door locks VS Evrae Altana or the platforms you move to in the Zanarkand trials battle.

About byte 32: This one makes the name be displayed on top of the screen or not when the command is used, a value of 2 seems to always hide it, and a value of 6 seems to always show it. But as with the previous byte, there are many more values which are used by the game and seem to do the exact same.

Bytes 33,34,35: This trio of bytes is the same as the binary bunch under "Addittional flags" in the Ronso tool, which is very misleading design. More on these later on.

Bytes 36,43,45: Still no idea here.

Byte 48: Appears to be always percentual values, ranging from 0 for everything that doesn't do damage, to 100 in some cases like Nova. Maybe this has to do with shattering petrified targets, although I haven't had the time to test it, and no idea why commands that can only target enemies like Nova would have a value set here, since enemies shatter automatically anyway.

Byte 91: Nope, no idea.

Byte 92: This has to do with the overdrive inputs and the voices of party members playing prior to using them.

Duration 255 for status ailments: Inflicting this duration, in addittion to having the effect of 254 in that it lasts forever, has the effect that the status can only be removed by KO or Petrification. Not even a removal with a rate of FF/255 and duration 255 will be able to remove this status. So if you set Sleep to duration 255, this means that no matter how many times you physically hit the target, the sleep won't go away, same goes for remedies, Esuna, etc. The target must die or be petrified for the sleep to go away. For the Nul statuses, note that this "duration" is not the amount of turns, but rather the amount of hits that will be immunized, other than this it's the same with the special 254 and 255 values.

Now, as for the bunch of binaries/flags:

01: ALWAYS Break Damage Limit (Has priority over 02)
02: NEVER Break Damage Limit
03: Remove statuses instead of inflicting them (doesn't affect "buffs", those are always inflicted)
04: Heal target's HP/MP/tick counter instead of damaging it.
05: No idea, but everything that has this is physical damage except Requiem, this being the only overdrive.
06: Same as above but is also set for all physical damage overdrives.
07: Trigger the target's Magic Counter, for example Yunalesca 1 counters with Silence (if 07 and 08 are both unset, "Special" counter will be triggered, Sleep for Yunalesca 1)
08: Trigger the target's Physical Counter, for example Yunalesca 1 counters with Blind (if 07 and 08 are both unset, "Special" counter will be triggered, Sleep for Yunalesca 1)
09: Inflict the Bribe status.
10: No idea again, but only aeon overdrives have it.
11: Unused?
12: Copycat can call this command if it's set. Else, Copycat ignores it.
13: I don't know, but only used by Switch, Escape, Flee, and (summon) Magus Sisters, changing it doesn't seem to do anything.
14: I don't know either, a lot of things have it, most notably menus/categories, which only have this one and the placement ones.
15: Completely empty the user's overdrive bar.
16: Can fill the user's overdrive bar.
17: Not sure, but only used by Life, Full Life, Rikku's Mega Phoenix and Auto-Life revive command (not the spell)
18: Eject the user after the animation finishes, this is only used by all versions of Self-Destruct, including Kimahri's.
19: Use high tier casting animation (if 19 and 20 are both unset, use middle tier casting animation)
20: Use low tier casting animation [Has priority over 19] (if 19 and 20 are both unset, use middle tier casting animation)
21: Used by all trigger commands except Struggle, most likely tells the command to interact with the target in the "trigger command" way, depending on the battle.
22: Add equipment Elemental/Status Touch/Strike. If unset, ignore Touch/Strike equipment.
23: User under Silence status cannot use it if this is set. Else, Silence doesn't prevent its usage.
24: Lots of things have it, and no idea once more...
25: Chooses random single targets instead of the whole group, for example Slice & Dice or elemental gems. Using this allows using single-target only animations on multiple targets and it will display correctly, but each hit will only go for one target. Note that the reverse visual problem does not happen, multi-target animations can always be used on single targets, some like Ultima will hide everyone else even if they are in the same group.
26: Inflict Delay (strong), this works even if bit 04 is set.
27: Inflict Delay (weak), this works even if bit 04 is set.
28: Overdrive/Trigger Command placement [Has priority over 29] (if 28 and 29 are both unset, main menu placement) MUST BE USED FOR THE MAGUS SISTERS!
29: Shield/Boost/Escape placement (if 28 and 29 are both unset, main menu placement) MUST BE USED FOR THE MAGUS SISTERS!
30: Unused?
31: Steal item from target, can be combined with stealing gil (gil is a separate byte, not in this list)
32: User absorbs HP/MP from target. If target is Zombie or bit 04 is also set, the effect is reversed.

And I think that's it for now...

Karifean

  • *
  • Posts: 65
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #57 on: 2023-06-13 17:08:15 »
Hey, just so you know like I said before you're not the only one who's been trying to figure this out, I've also been collecting and interpreting what these byte structures mean. I'm using it in a little Java project of mine that can parse out the files from the vbf archive directly, you can check it out here if you want:

https://github.com/Karifean/FFXDataParser/blob/master/src/main/java/model/AbilityDataObject.java

The parseBytes and parseFlags functions can give some insight. I guess to answer some of your confusions directly, for example, flag 24 seems to be the Piercing flag, which makes the attack ignore the target's Armored status. Flag 17 I found makes the ability miss if the target is alive. There's a lot more I mapped out, though also a lot more I don't yet know myself, including some things I'm sure must be in there somewhere (such as flags whether an ability is affected by Alchemy and Magic Booster) but haven't managed to place. I also had no idea about the Copycattable flag among some other things such as the meaning of byte 31 (which is actually byte 27 or 0x1B due to the 4 byte shift you identified), so thanks for sharing.

fireYtail

  • *
  • Posts: 5
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #58 on: 2023-06-13 19:26:42 »
Sorry for the noob question, but the very few Java executables I have seen and ran are JAR files, such as the save editor FFXED, and in your "readme.md" it says the file is named "Main.jar", however the file seems to be actually named "Main.java", and either way, attempting to run it throws this error, be it in console or double clicking it:

Error: Invalid or corrupt jarfile Main.java

What am I missing? Is this not meant to be run with this? Because this is the only Java I know and have: https://www.java.com/download/ie_manual.jsp (from Oracle)

And thank you so much for the help!

EDIT: Sorry to bother again, but I've been looking and it seems that the command data is load by the game from its files to the memory as-is, as your findings completely coincide with what I had found out on my own (plus additional stuff that you had). However, the battle data that the game temporarilly allocates into a random memory location whenever a battle is started, until it finishes, seems to have a whole different structure, as it's not coinciding with what you have on GitHub. In case you're interested, I have many memory addresses for the game, some of them need pointers to find, which I have too. The for the whole inventory slots, the IDs of the commands contained within each slot (not the amounts), are 2 bytes starting at "FFX.exe+D3095C" for Slot 1, "FFX.exe+D3095E" for Slot 2 (immediately after), all the way to "FFX.exe+D30A3A" Slot 112, which is the last. Setting these values to 0x2000 equals a Potion, 0x2001 a Hi-Potion, but the whole other 3 command tables also have working values, which I have. Note that the slot amount cannot be zero, or the "Item" will not appear, and it's also required to call menu 20 instead of 6 for many to be displayed in battle without altering the command data. Menu 20 displays everything, even things like "Dark Matter", "Winning Formula", or "Silence", which won't display in menu 6. These are all the possible values:

Code: [Select]
00FF:[Empty]
2000:Potion [ITEM ABILITY 001]
2001:Hi-Potion [ITEM ABILITY 002]
2002:X-Potion [ITEM ABILITY 003]
2003:Mega-Potion [ITEM ABILITY 004]
2004:Ether [ITEM ABILITY 005]
2005:Turbo Ether [ITEM ABILITY 006]
2006:Phoenix Down [ITEM ABILITY 007]
2007:Mega Phoenix (Item) [ITEM ABILITY 008]
2008:Elixir (Item) [ITEM ABILITY 009]
2009:Megalixir (Item) [ITEM ABILITY 010]
200A:Antidote [ITEM ABILITY 011]
200B:Soft [ITEM ABILITY 012]
200C:Eye Drops [ITEM ABILITY 013]
200D:Echo Screen [ITEM ABILITY 014]
200E:Holy Water [ITEM ABILITY 015]
200F:Remedy [ITEM ABILITY 016]
2010:Power Distiller [ITEM ABILITY 017]
2011:Mana Distiller [ITEM ABILITY 018]
2012:Speed Distiller [ITEM ABILITY 019]
2013:Ability Distiller [ITEM ABILITY 020]
2014:Al Bhed Potion [ITEM ABILITY 021]
2015:Healing Water [ITEM ABILITY 022]
2016:Tetra Elemental [ITEM ABILITY 023]
2017:Antarctic Wind [ITEM ABILITY 024]
2018:Arctic Wind [ITEM ABILITY 025]
2019:Ice Gem [ITEM ABILITY 026]
201A:Bomb Fragment [ITEM ABILITY 027]
201B:Bomb Core [ITEM ABILITY 028]
201C:Fire Gem [ITEM ABILITY 029]
201D:Electro Marble [ITEM ABILITY 030]
201E:Lightning Marble [ITEM ABILITY 031]
201F:Lightning Gem [ITEM ABILITY 032]
2020:Fish Scale [ITEM ABILITY 033]
2021:Dragon Scale [ITEM ABILITY 034]
2022:Water Gem [ITEM ABILITY 035]
2023:Grenade (Item) [ITEM ABILITY 036]
2024:Frag Grenade [ITEM ABILITY 037]
2025:Sleeping Powder [ITEM ABILITY 038]
2026:Dream Powder [ITEM ABILITY 039]
2027:Silence Grenade [ITEM ABILITY 040]
2028:Smoke Bomb [ITEM ABILITY 041]
2029:Shadow Gem [ITEM ABILITY 042]
202A:Shining Gem [ITEM ABILITY 043]
202B:Blessed Gem [ITEM ABILITY 044]
202C:Supreme Gem [ITEM ABILITY 045]
202D:Poison Fang [ITEM ABILITY 046]
202E:Silver Hourglass [ITEM ABILITY 047]
202F:Gold Hourglass [ITEM ABILITY 048]
2030:Candle of Life [ITEM ABILITY 049]
2031:Petrify Grenade [ITEM ABILITY 050]
2032:Farplane Shadow [ITEM ABILITY 051]
2033:Farplane Wind [ITEM ABILITY 052]
2034:Designer Wallet [ITEM ABILITY 053]
2035:Dark Matter [ITEM ABILITY 054]
2036:Chocobo Feather [ITEM ABILITY 055]
2037:Chocobo Wing [ITEM ABILITY 056]
2038:Lunar Curtain [ITEM ABILITY 057]
2039:Light Curtain [ITEM ABILITY 058]
203A:Star Curtain [ITEM ABILITY 059]
203B:Healing Spring [ITEM ABILITY 060]
203C:Mana Spring [ITEM ABILITY 061]
203D:Stamina Spring [ITEM ABILITY 062]
203E:Soul Spring [ITEM ABILITY 063]
203F:Purifying Salt [ITEM ABILITY 064]
2040:Stamina Tablet [ITEM ABILITY 065]
2041:Mana Tablet [ITEM ABILITY 066]
2042:Twin Stars [ITEM ABILITY 067]
2043:Stamina Tonic [ITEM ABILITY 068]
2044:Mana Tonic [ITEM ABILITY 069]
2045:Three Stars [ITEM ABILITY 070]
2046:Power Sphere [ITEM ABILITY 071]
2047:Mana Sphere [ITEM ABILITY 072]
2048:Speed Sphere [ITEM ABILITY 073]
2049:Ability Sphere [ITEM ABILITY 074]
204A:Fortune Sphere [ITEM ABILITY 075]
204B:Attribute Sphere [ITEM ABILITY 076]
204C:Special Sphere [ITEM ABILITY 077]
204D:Skill Sphere [ITEM ABILITY 078]
204E:Wht Magic Sphere [ITEM ABILITY 079]
204F:Blk Magic Sphere [ITEM ABILITY 080]
2050:Master Sphere [ITEM ABILITY 081]
2051:Lv. 1 Key Sphere [ITEM ABILITY 082]
2052:Lv. 2 Key Sphere [ITEM ABILITY 083]
2053:Lv. 3 Key Sphere [ITEM ABILITY 084]
2054:Lv. 4 Key Sphere [ITEM ABILITY 085]
2055:HP Sphere [ITEM ABILITY 086]
2056:MP Sphere [ITEM ABILITY 087]
2057:Strength Sphere [ITEM ABILITY 088]
2058:Defense Sphere [ITEM ABILITY 089]
2059:Magic Sphere [ITEM ABILITY 090]
205A:Magic Def Sphere [ITEM ABILITY 091]
205B:Agility Sphere [ITEM ABILITY 092]
205C:Evasion Sphere [ITEM ABILITY 093]
205D:Accuracy Sphere [ITEM ABILITY 094]
205E:Luck Sphere [ITEM ABILITY 095]
205F:Clear Sphere [ITEM ABILITY 096]
2060:Return Sphere [ITEM ABILITY 097]
2061:Friend Sphere [ITEM ABILITY 098]
2062:Teleport Sphere [ITEM ABILITY 099]
2063:Warp Sphere [ITEM ABILITY 100]
2064:Map [ITEM ABILITY 101]
2065:Rename Card [ITEM ABILITY 102]
2066:Musk [ITEM ABILITY 103]
2067:Hypello Potion [ITEM ABILITY 104]
2068:Shining Thorn [ITEM ABILITY 105]
2069:Pendulum [ITEM ABILITY 106]
206A:Amulet [ITEM ABILITY 107]
206B:Door to Tomorrow [ITEM ABILITY 108]
206C:Wings to Discovery [ITEM ABILITY 109]
206D:Gambler's Spirit [ITEM ABILITY 110]
206E:Underdog's Secret [ITEM ABILITY 111]
206F:Winning Formula [ITEM ABILITY 112]
3000:Attack (Party members) [PLAYER ABILITY 001]
3001:Item (Battle menu) [PLAYER ABILITY 002]
3002:Switch (Battle menu) [PLAYER ABILITY 003]
3003:Escape [PLAYER ABILITY 004]
3004:Weapon (Change equipment) [PLAYER ABILITY 005]
3005:Armor (Change equipment) [PLAYER ABILITY 006]
3006:Delay Attack [PLAYER ABILITY 007]
3007:Delay Buster [PLAYER ABILITY 008]
3008:Sleep Attack [PLAYER ABILITY 009]
3009:Silence Attack [PLAYER ABILITY 010]
300A:Dark Attack [PLAYER ABILITY 011]
300B:Zombie Attack [PLAYER ABILITY 012]
300C:Sleep Buster [PLAYER ABILITY 013]
300D:Silence Buster [PLAYER ABILITY 014]
300E:Dark Buster [PLAYER ABILITY 015]
300F:Triple Foul [PLAYER ABILITY 016]
3010:Power Break [PLAYER ABILITY 017]
3011:Magic Break [PLAYER ABILITY 018]
3012:Armor Break [PLAYER ABILITY 019]
3013:Mental Break [PLAYER ABILITY 020]
3014:Mug [PLAYER ABILITY 021]
3015:Quick Hit [PLAYER ABILITY 022]
3016:Steal [PLAYER ABILITY 023]
3017:Use [PLAYER ABILITY 024]
3018:Flee [PLAYER ABILITY 025]
3019:Pray [PLAYER ABILITY 026]
301A:Cheer [PLAYER ABILITY 027]
301B:Aim [PLAYER ABILITY 028]
301C:Focus [PLAYER ABILITY 029]
301D:Reflex [PLAYER ABILITY 030]
301E:Luck [PLAYER ABILITY 031]
301F:Jinx [PLAYER ABILITY 032]
3020:Lancet [PLAYER ABILITY 033]
3021:Defend [PLAYER ABILITY 034]
3022:Guard [PLAYER ABILITY 035]
3023:Sentinel [PLAYER ABILITY 036]
3024:Spare Change [PLAYER ABILITY 037]
3025:Threaten [PLAYER ABILITY 038]
3026:Provoke [PLAYER ABILITY 039]
3027:Entrust [PLAYER ABILITY 040]
3028:Copycat [PLAYER ABILITY 041]
3029:Doublecast [PLAYER ABILITY 042]
302A:Bribe [PLAYER ABILITY 043]
302B:Cure [PLAYER ABILITY 044]
302C:Cura [PLAYER ABILITY 045]
302D:Curaga [PLAYER ABILITY 046]
302E:NulFrost [PLAYER ABILITY 047]
302F:NulBlaze [PLAYER ABILITY 048]
3030:NulShock [PLAYER ABILITY 049]
3031:NulTide [PLAYER ABILITY 050]
3032:Scan [PLAYER ABILITY 051]
3033:Esuna [PLAYER ABILITY 052]
3034:Life [PLAYER ABILITY 053]
3035:Full-Life [PLAYER ABILITY 054]
3036:Haste [PLAYER ABILITY 055]
3037:Hastega [PLAYER ABILITY 056]
3038:Slow [PLAYER ABILITY 057]
3039:Slowga [PLAYER ABILITY 058]
303A:Shell [PLAYER ABILITY 059]
303B:Protect [PLAYER ABILITY 060]
303C:Reflect [PLAYER ABILITY 061]
303D:Dispel [PLAYER ABILITY 062]
303E:Regen [PLAYER ABILITY 063]
303F:Holy [PLAYER ABILITY 064]
3040:Auto-Life (White magic spell) [PLAYER ABILITY 065]
3041:Blizzard [PLAYER ABILITY 066]
3042:Fire [PLAYER ABILITY 067]
3043:Thunder [PLAYER ABILITY 068]
3044:Water [PLAYER ABILITY 069]
3045:Fira [PLAYER ABILITY 070]
3046:Blizzara [PLAYER ABILITY 071]
3047:Thundara [PLAYER ABILITY 072]
3048:Watera [PLAYER ABILITY 073]
3049:Firaga [PLAYER ABILITY 074]
304A:Blizzaga [PLAYER ABILITY 075]
304B:Thundaga [PLAYER ABILITY 076]
304C:Waterga [PLAYER ABILITY 077]
304D:Bio [PLAYER ABILITY 078]
304E:Demi [PLAYER ABILITY 079]
304F:Death [PLAYER ABILITY 080]
3050:Drain [PLAYER ABILITY 081]
3051:Osmose [PLAYER ABILITY 082]
3052:Flare [PLAYER ABILITY 083]
3053:Ultima [PLAYER ABILITY 084]
3054:Shield (Aeons except Yojimbo and Magus) [PLAYER ABILITY 085]
3055:Boost (Aeons except Yojimbo and Magus) [PLAYER ABILITY 086]
3056:Dismiss (Aeons except Yojimbo) [PLAYER ABILITY 087]
3057:Dismiss (Yojimbo) [PLAYER ABILITY 088]
3058:Pilfer Gil [PLAYER ABILITY 089]
3059:Full Break [PLAYER ABILITY 090]
305A:Extract Power [PLAYER ABILITY 091]
305B:Extract Mana [PLAYER ABILITY 092]
305C:Extract Speed [PLAYER ABILITY 093]
305D:Extract Ability [PLAYER ABILITY 094]
305E:Nab Gil [PLAYER ABILITY 095]
305F:Quick Pockets [PLAYER ABILITY 096]
3060:Spiral Cut [PLAYER ABILITY 097]
3061:Slice & Dice [PLAYER ABILITY 098]
3062:Energy Rain [PLAYER ABILITY 099]
3063:Blitz Ace [PLAYER ABILITY 100]
3064:Shooting Star [PLAYER ABILITY 101]
3065:Dragon Fang [PLAYER ABILITY 102]
3066:Banishing Blade [PLAYER ABILITY 103]
3067:Tornado [PLAYER ABILITY 104]
3068:Jump (Used by Kimahri as a boss despite being a player command) [PLAYER ABILITY 105]
3069:Fire Breath (Kimahri's overdrive) [PLAYER ABILITY 106]
306A:Seed Cannon (Kimahri's overdrive) [PLAYER ABILITY 107]
306B:Self-Destruct (Kimahri's overdrive) [PLAYER ABILITY 108]
306C:Thrust Kick (Kimahri's overdrive, damage instead of eject by default) [PLAYER ABILITY 109]
306D:Stone Breath (Kimahri's overdrive) [PLAYER ABILITY 110]
306E:Aqua Breath (Kimahri's overdrive) [PLAYER ABILITY 111]
306F:Doom (Kimahri's overdrive) [PLAYER ABILITY 112]
3070:White Wind (Kimahri's overdrive) [PLAYER ABILITY 113]
3071:Bad Breath (Kimahri's overdrive) [PLAYER ABILITY 114]
3072:Mighty Guard (Kimahri's overdrive) [PLAYER ABILITY 115]
3073:Nova (Kimahri's overdrive) [PLAYER ABILITY 116]
3074:Element Reels (Player input command only) [PLAYER ABILITY 117]
3075:Attack Reels (Player input command only) [PLAYER ABILITY 118]
3076:Status Reels (Player input command only) [PLAYER ABILITY 119]
3077:Aurochs Reels (Player input command only) [PLAYER ABILITY 120]
3078:Blizzard Fury [PLAYER ABILITY 121]
3079:Fire Fury [PLAYER ABILITY 122]
307A:Thunder Fury [PLAYER ABILITY 123]
307B:Water Fury [PLAYER ABILITY 124]
307C:Fira Fury [PLAYER ABILITY 125]
307D:Blizzara Fury [PLAYER ABILITY 126]
307E:Thundara Fury [PLAYER ABILITY 127]
307F:Watera Fury [PLAYER ABILITY 128]
3080:Firaga Fury [PLAYER ABILITY 129]
3081:Blizzaga Fury [PLAYER ABILITY 130]
3082:Thundaga Fury [PLAYER ABILITY 131]
3083:Waterga Fury [PLAYER ABILITY 132]
3084:Bio Fury [PLAYER ABILITY 133]
3085:Demi Fury [PLAYER ABILITY 134]
3086:Death Fury [PLAYER ABILITY 135]
3087:Drain Fury [PLAYER ABILITY 136]
3088:Osmose Fury [PLAYER ABILITY 137]
3089:Flare Fury [PLAYER ABILITY 138]
308A:Ultima Fury [PLAYER ABILITY 139]
308B:Grenade (Rikku's overdrive) [PLAYER ABILITY 140]
308C:Frag Grenade (Rikku's overdrive) [PLAYER ABILITY 141]
308D:Pineapple [PLAYER ABILITY 142]
308E:Potato Masher [PLAYER ABILITY 143]
308F:Cluster Bomb [PLAYER ABILITY 144]
3090:Tallboy [PLAYER ABILITY 145]
3091:Blaster Mine [PLAYER ABILITY 146]
3092:Hazardous Shell [PLAYER ABILITY 147]
3093:Calamity Bomb [PLAYER ABILITY 148]
3094:Chaos Grenade [PLAYER ABILITY 149]
3095:Heat Blaster [PLAYER ABILITY 150]
3096:Firestorm [PLAYER ABILITY 151]
3097:Burning Soul [PLAYER ABILITY 152]
3098:Brimstone [PLAYER ABILITY 153]
3099:Abaddon Flame [PLAYER ABILITY 154]
309A:Snow Flurry [PLAYER ABILITY 155]
309B:Icefall [PLAYER ABILITY 156]
309C:Winter Storm [PLAYER ABILITY 157]
309D:Black Ice [PLAYER ABILITY 158]
309E:Krysta [PLAYER ABILITY 159]
309F:Thunderbolt [PLAYER ABILITY 160]
30A0:Rolling Thunder [PLAYER ABILITY 161]
30A1:Lightning Bolt [PLAYER ABILITY 162]
30A2:Electroshock [PLAYER ABILITY 163]
30A3:Thunderblast [PLAYER ABILITY 164]
30A4:Waterfall [PLAYER ABILITY 165]
30A5:Flash Flood [PLAYER ABILITY 166]
30A6:Tidal Wave [PLAYER ABILITY 167]
30A7:Aqua Toxin [PLAYER ABILITY 168]
30A8:Dark Rain [PLAYER ABILITY 169]
30A9:Nega Burst [PLAYER ABILITY 170]
30AA:Black Hole [PLAYER ABILITY 171]
30AB:Sunburst [PLAYER ABILITY 172]
30AC:Ultra Potion [PLAYER ABILITY 173]
30AD:Panacea [PLAYER ABILITY 174]
30AE:Ultra Cure [PLAYER ABILITY 175]
30AF:Mega Phoenix (Rikku's overdrive) [PLAYER ABILITY 176]
30B0:Final Phoenix [PLAYER ABILITY 177]
30B1:Elixir (Rikku's overdrive) [PLAYER ABILITY 178]
30B2:Megalixir (Rikku's overdrive) [PLAYER ABILITY 179]
30B3:Super Elixir [PLAYER ABILITY 180]
30B4:Final Elixir [PLAYER ABILITY 181]
30B5:NulAll (Rikku's overdrive) [PLAYER ABILITY 182]
30B6:Mega NulAll [PLAYER ABILITY 183]
30B7:Hyper NulAll [PLAYER ABILITY 184]
30B8:Ultra NulAll [PLAYER ABILITY 185]
30B9:Mighty Wall [PLAYER ABILITY 186]
30BA:Mighty G [PLAYER ABILITY 187]
30BB:Super Mighty G [PLAYER ABILITY 188]
30BC:Hyper Mighty G [PLAYER ABILITY 189]
30BD:Vitality [PLAYER ABILITY 190]
30BE:Mega Vitality [PLAYER ABILITY 191]
30BF:Hyper Vitality [PLAYER ABILITY 192]
30C0:Mana [PLAYER ABILITY 193]
30C1:Mega Mana [PLAYER ABILITY 194]
30C2:Hyper Mana [PLAYER ABILITY 195]
30C3:Freedom [PLAYER ABILITY 196]
30C4:Freedom X [PLAYER ABILITY 197]
30C5:Quartet of 9 [PLAYER ABILITY 198]
30C6:Trio of 9999 [PLAYER ABILITY 199]
30C7:Hero Drink [PLAYER ABILITY 200]
30C8:Miracle Drink [PLAYER ABILITY 201]
30C9:Hot Spurs [PLAYER ABILITY 202]
30CA:Eccentrick [PLAYER ABILITY 203]
30CB:Attack (Valefor) [PLAYER ABILITY 204]
30CC:Sonic Wings [PLAYER ABILITY 205]
30CD:Energy Blast [PLAYER ABILITY 206]
30CE:Energy Ray [PLAYER ABILITY 207]
30CF:Attack (Ifrit) [PLAYER ABILITY 208]
30D0:Meteor Strike [PLAYER ABILITY 209]
30D1:Hellfire [PLAYER ABILITY 210]
30D2:Attack (Ixion) [PLAYER ABILITY 211]
30D3:Aerospark [PLAYER ABILITY 212]
30D4:Thor's Hammer [PLAYER ABILITY 213]
30D5:Attack (Shiva) [PLAYER ABILITY 214]
30D6:Heavenly Strike [PLAYER ABILITY 215]
30D7:Diamond Dust [PLAYER ABILITY 216]
30D8:Attack (Bahamut) [PLAYER ABILITY 217]
30D9:Impulse [PLAYER ABILITY 218]
30DA:Mega Flare [PLAYER ABILITY 219]
30DB:Attack (Anima) [PLAYER ABILITY 220]
30DC:Pain [PLAYER ABILITY 221]
30DD:Oblivion [PLAYER ABILITY 222]
30DE:Daigoro (regular Attack command for Yojimbo) [PLAYER ABILITY 223]
30DF:Kozuka [PLAYER ABILITY 224]
30E0:Wakizashi (one enemy) [PLAYER ABILITY 225]
30E1:Wakizashi (all enemies) [PLAYER ABILITY 226]
30E2:Zanmato [PLAYER ABILITY 227]
30E3:Requiem (Seymour's overdrive) [PLAYER ABILITY 228]
30E4:Attack (Cindy) [PLAYER ABILITY 229]
30E5:Camisade [PLAYER ABILITY 230]
30E6:Attack (Sandy) [PLAYER ABILITY 231]
30E7:Razzia [PLAYER ABILITY 232]
30E8:Attack (Mindy) [PLAYER ABILITY 233]
30E9:Passado [PLAYER ABILITY 234]
30EA:Delta Attack (Cindy) [PLAYER ABILITY 235]
30EB:- (Spiral Cut failed input) [PLAYER ABILITY 236]
30EC:- (Slice & Dice failed input) [PLAYER ABILITY 237]
30ED:- (Energy Rain failed input) [PLAYER ABILITY 238]
30EE:- (Blitz Ace failed input) [PLAYER ABILITY 239]
30EF:Fire Shot (one enemy) [PLAYER ABILITY 240]
30F0:Fire Shot (all enemies) [PLAYER ABILITY 241]
30F1:Ice Shot (one enemy) [PLAYER ABILITY 242]
30F2:Ice Shot (all enemies) [PLAYER ABILITY 243]
30F3:Water Shot (one enemy) [PLAYER ABILITY 244]
30F4:Water Shot (all enemies) [PLAYER ABILITY 245]
30F5:Thunder Shot (one enemy) [PLAYER ABILITY 246]
30F6:Thunder Shot (all enemies) [PLAYER ABILITY 247]
30F7:Havoc Shot (one enemy) [PLAYER ABILITY 248]
30F8:Havoc Shot (all enemies) [PLAYER ABILITY 249]
30F9:Time Shot (one enemy) [PLAYER ABILITY 250]
30FA:Time Shot (all enemies) [PLAYER ABILITY 251]
30FB:Break Shot (one enemy) [PLAYER ABILITY 252]
30FC:Break Shot (all enemies) [PLAYER ABILITY 253]
30FD:Aurochs Shot [PLAYER ABILITY 254]
30FE:Power Shot [PLAYER ABILITY 255]
30FF:Magus Sisters (Summon menu) [PLAYER ABILITY 256]
3100:Summon Aeon (Unused?) [PLAYER ABILITY 257]
3101:Pincer Attack [PLAYER ABILITY 258]
3102:Use crane [PLAYER ABILITY 259]
3103:Move (Trigger command) [PLAYER ABILITY 260]
3104:Stand by [PLAYER ABILITY 261]
3105:Talk [PLAYER ABILITY 262]
3106:Move in [PLAYER ABILITY 263]
3107:Pull back [PLAYER ABILITY 264]
3108:Cancel (Trigger command) [PLAYER ABILITY 265]
3109:Struggle [PLAYER ABILITY 266]
310A:- (Shooting Star failed input) [PLAYER ABILITY 267]
310B:- (Dragon Fang failed input) [PLAYER ABILITY 268]
310C:- (Banishing Blade failed input) [PLAYER ABILITY 269]
310D:- (Tornado failed input) [PLAYER ABILITY 270]
310E:- (Shooting Star immune enemy) [PLAYER ABILITY 271]
310F:- (Dragon Fang immune enemy) [PLAYER ABILITY 272]
3110:- (Banishing Blade immune enemy) [PLAYER ABILITY 273]
3111:- (Tornado more powerful?) [PLAYER ABILITY 274]
3112:- (Blitz Ace final hit) [PLAYER ABILITY 275]
3113:Skill (Battle menu) [PLAYER ABILITY 276]
3114:Special (Battle menu) [PLAYER ABILITY 277]
3115:Blk Magic (Battle menu) [PLAYER ABILITY 278]
3116:Wht Magic (Battle menu) [PLAYER ABILITY 279]
3117:Summon (Battle menu) [PLAYER ABILITY 280]
3118:Grand Summon (Battle menu) [PLAYER ABILITY 281]
3119:Swordplay (Battle menu) [PLAYER ABILITY 282]
311A:Ronso Rage (Battle menu) [PLAYER ABILITY 283]
311B:Bushido (Battle menu) [PLAYER ABILITY 284]
311C:Slots (Battle menu) [PLAYER ABILITY 285]
311D:Fury (Battle menu) [PLAYER ABILITY 286]
311E:Mix (Battle menu) [PLAYER ABILITY 287]
311F:Auto-Life (Revival command, not spell) [PLAYER ABILITY 288]
3120:Death (Doom countdown reaching zero) [PLAYER ABILITY 289]
3121:Gil (Spare Change?) [PLAYER ABILITY 290]
3122:Gil (Yojimbo?) [PLAYER ABILITY 291]
3123:Pay (Yojimbo) [PLAYER ABILITY 292]
3124:Do as you will. [PLAYER ABILITY 293]
3125:One more time. [PLAYER ABILITY 294]
3126:Fight! (Magus Sisters) [PLAYER ABILITY 295]
3127:Go, go! [PLAYER ABILITY 296]
3128:Help each other! [PLAYER ABILITY 297]
3129:Combine powers! [PLAYER ABILITY 298]
312A:Defense! (Magus Sisters) [PLAYER ABILITY 299]
312B:Are you all right? [PLAYER ABILITY 300]
312C:Taking a break... (Magus Sisters) [PLAYER ABILITY 301]
312D:NulAll (Cindy) [PLAYER ABILITY 302]
312E:Attack Reels (Damage command) [PLAYER ABILITY 303]
312F:Open lock [PLAYER ABILITY 304]
3130:Extra 24 (Unused?) [PLAYER ABILITY 305]
3131:Extra 25 (Unused?) [PLAYER ABILITY 306]
3132:Extra 26 (Unused?) [PLAYER ABILITY 307]
3133:Extra 27 (Unused?) [PLAYER ABILITY 308]
3134:Extra 28 (Unused?) [PLAYER ABILITY 309]
3135:Extra 29 (Unused?) [PLAYER ABILITY 310]
3136:Extra 30 (Unused?) [PLAYER ABILITY 311]
3137:Extra 31 (Unused?) [PLAYER ABILITY 312]
3138:Extra 32 (Unused? Heals 50 HP to all allies) [PLAYER ABILITY 313]
3139:Extra 33 (Unused?) [PLAYER ABILITY 314]
313A:Extra 34 (Unused?) [PLAYER ABILITY 315]
313B:Extra 35 (Unused?) [PLAYER ABILITY 316]
313C:Extra 36 (Unused?) [PLAYER ABILITY 317]
313D:Extra 37 (Unused?) [PLAYER ABILITY 318]
313E:Extra 38 (Unused?) [PLAYER ABILITY 319]
313F:Extra 39 (Unused?) [PLAYER ABILITY 320]
4000:Attack [ENEMY1 ABILITY 001]
4001:Command 2 [ENEMY1 ABILITY 002]
4002:Command 3 [ENEMY1 ABILITY 003]
4003:Seed Cannon [ENEMY1 ABILITY 004]
4004:Seed Burst [ENEMY1 ABILITY 005]
4005:Swallow [ENEMY1 ABILITY 006]
4006:Regurgitate [ENEMY1 ABILITY 007]
4007:Readying Quake [ENEMY1 ABILITY 008]
4008:Earthquake [ENEMY1 ABILITY 009]
4009:Self-Destruct [ENEMY1 ABILITY 010]
400A:Gaze [ENEMY1 ABILITY 011]
400B:Ultrasonics [ENEMY1 ABILITY 012]
400C:Sonic Boom [ENEMY1 ABILITY 013]
400D:Poison Dart [ENEMY1 ABILITY 014]
400E:Command [ENEMY1 ABILITY 015]
400F:Berserk [ENEMY1 ABILITY 016]
4010:Auto-Potion [ENEMY1 ABILITY 017]
4011:Rifle [ENEMY1 ABILITY 018]
4012:Rifle [ENEMY1 ABILITY 019]
4013:Flamethrower [ENEMY1 ABILITY 020]
4014:Thrust Kick [ENEMY1 ABILITY 021]
4015:Water Spurt [ENEMY1 ABILITY 022]
4016:Sonic Boom [ENEMY1 ABILITY 023]
4017:Command [ENEMY1 ABILITY 024]
4018:Preparation [ENEMY1 ABILITY 025]
4019:Landing [ENEMY1 ABILITY 026]
401A:Crawl [ENEMY1 ABILITY 027]
401B:Breath [ENEMY1 ABILITY 028]
401C:Breath [ENEMY1 ABILITY 029]
401D:Breath [ENEMY1 ABILITY 030]
401E:Breath [ENEMY1 ABILITY 031]
401F:Single [ENEMY1 ABILITY 032]
4020:All [ENEMY1 ABILITY 033]
4021:Sonic Wave [ENEMY1 ABILITY 034]
4022:Core Energy [ENEMY1 ABILITY 035]
4023:Shimmering Rain [ENEMY1 ABILITY 036]
4024:Gore [ENEMY1 ABILITY 037]
4025:Breath [ENEMY1 ABILITY 038]
4026:Attack [ENEMY1 ABILITY 039]
4027:Reaper [ENEMY1 ABILITY 040]
4028:Leaping Swing [ENEMY1 ABILITY 041]
4029:Electrocute [ENEMY1 ABILITY 042]
402A:Earthquake [ENEMY1 ABILITY 043]
402B:Ochu Dance [ENEMY1 ABILITY 044]
402C:Pollen [ENEMY1 ABILITY 045]
402D:Pollen [ENEMY1 ABILITY 046]
402E:Pollen [ENEMY1 ABILITY 047]
402F:Maelstrom [ENEMY1 ABILITY 048]
4030:Rush [ENEMY1 ABILITY 049]
4031:1000 Needles [ENEMY1 ABILITY 050]
4032:10000 Needles [ENEMY1 ABILITY 051]
4033:Run Away [ENEMY1 ABILITY 052]
4034:Blast Punch [ENEMY1 ABILITY 053]
4035:Haymaker [ENEMY1 ABILITY 054]
4036:Attack [ENEMY1 ABILITY 055]
4037:Open [ENEMY1 ABILITY 056]
4038:Stone Gaze [ENEMY1 ABILITY 057]
4039:Sonic Tail [ENEMY1 ABILITY 058]
403A:Emblem of Fate [ENEMY1 ABILITY 059]
403B:Counterattack [ENEMY1 ABILITY 060]
403C:Psych Up [ENEMY1 ABILITY 061]
403D:Energy Ray [ENEMY1 ABILITY 062]
403E:Burn [ENEMY1 ABILITY 063]
403F:Grow2 [ENEMY1 ABILITY 064]
4040:Grow3 [ENEMY1 ABILITY 065]
4041:Grow4 [ENEMY1 ABILITY 066]
4042:Self-Destruct [ENEMY1 ABILITY 067]
4043:RUSH [ENEMY1 ABILITY 068]
4044:Pharaoh's Curse [ENEMY1 ABILITY 069]
4045:Charging [ENEMY1 ABILITY 070]
4046:Flame Ball [ENEMY1 ABILITY 071]
4047:Flame Ball [ENEMY1 ABILITY 072]
4048:Self-Destruct [ENEMY1 ABILITY 073]
4049:Self-Destruct [ENEMY1 ABILITY 074]
404A:Self-Destruct [ENEMY1 ABILITY 075]
404B:Death [ENEMY1 ABILITY 076]
404C:Doom [ENEMY1 ABILITY 077]
404D:Aqua Breath [ENEMY1 ABILITY 078]
404E:Megiddo Flame [ENEMY1 ABILITY 079]
404F:Silence [ENEMY1 ABILITY 080]
4050:Blades [ENEMY1 ABILITY 081]
4051:Poison Mist [ENEMY1 ABILITY 082]
4052:GNAW [ENEMY1 ABILITY 083]
4053:Bad Breath [ENEMY1 ABILITY 084]
4054:Gastric Juice [ENEMY1 ABILITY 085]
4055:Attack [ENEMY1 ABILITY 086]
4056:Munch [ENEMY1 ABILITY 087]
4057:Full-Auto [ENEMY1 ABILITY 088]
4058:Double Reaper [ENEMY1 ABILITY 089]
4059:RUSH [ENEMY1 ABILITY 090]
405A:White Wind [ENEMY1 ABILITY 091]
405B:Mighty Guard [ENEMY1 ABILITY 092]
405C:Attack [ENEMY1 ABILITY 093]
405D:Sonic Wings [ENEMY1 ABILITY 094]
405E:Hellfire [ENEMY1 ABILITY 095]
405F:Mega Flare [ENEMY1 ABILITY 096]
4060:Karma [ENEMY1 ABILITY 097]
4061:Voodoo [ENEMY1 ABILITY 098]
4062:Attack [ENEMY1 ABILITY 099]
4063:Cancel Counter [ENEMY1 ABILITY 100]
4064:Aerospark [ENEMY1 ABILITY 101]
4065:Thor's Hammer [ENEMY1 ABILITY 102]
4066:Heave [ENEMY1 ABILITY 103]
4067:Nova [ENEMY1 ABILITY 104]
4068:Earthquake [ENEMY1 ABILITY 105]
4069:Meteor [ENEMY1 ABILITY 106]
406A:Tail [ENEMY1 ABILITY 107]
406B:Breath [ENEMY1 ABILITY 108]
406C:Body Splash [ENEMY1 ABILITY 109]
406D:Mortar [ENEMY1 ABILITY 110]
406E:Mana Focus [ENEMY1 ABILITY 111]
406F:Earthquake [ENEMY1 ABILITY 112]
4070:Blaster [ENEMY1 ABILITY 113]
4071:Blaster [ENEMY1 ABILITY 114]
4072:Claw [ENEMY1 ABILITY 115]
4073:Die [ENEMY1 ABILITY 116]
4074:Die [ENEMY1 ABILITY 117]
4075:Die [ENEMY1 ABILITY 118]
4076:Die [ENEMY1 ABILITY 119]
4077:Die [ENEMY1 ABILITY 120]
4078:Die [ENEMY1 ABILITY 121]
4079:Die [ENEMY1 ABILITY 122]
407A:Die [ENEMY1 ABILITY 123]
407B:Die [ENEMY1 ABILITY 124]
407C:Die [ENEMY1 ABILITY 125]
407D:Die [ENEMY1 ABILITY 126]
407E:Die [ENEMY1 ABILITY 127]
407F:Attack [ENEMY1 ABILITY 128]
4080:Attack [ENEMY1 ABILITY 129]
4081:Waddle [ENEMY1 ABILITY 130]
4082:Kozuka [ENEMY1 ABILITY 131]
4083:Wakizashi [ENEMY1 ABILITY 132]
4084:Wakizashi [ENEMY1 ABILITY 133]
4085:Zanmato [ENEMY1 ABILITY 134]
4086:Daigoro [ENEMY1 ABILITY 135]
4087:Wrong! [ENEMY1 ABILITY 136]
4088:Bingo! [ENEMY1 ABILITY 137]
4089:Meteor Strike [ENEMY1 ABILITY 138]
408A:Summon (Guado fiend spawn) [ENEMY1 ABILITY 139]
408B:Summon (Valefor spawn) [ENEMY1 ABILITY 140]
408C:Summon (Ifrit spawn) [ENEMY1 ABILITY 141]
408D:Summon (Shiva spawn) [ENEMY1 ABILITY 142]
408E:Summon (Ixion spawn) [ENEMY1 ABILITY 143]
408F:Summon (Bahamut spawn) [ENEMY1 ABILITY 144]
4090:Summon (Yojimbo spawn) [ENEMY1 ABILITY 145]
4091:Summon (Anima spawn) [ENEMY1 ABILITY 146]
4092:Summon (Magus Sisters spawn) [ENEMY1 ABILITY 147]
4093:Earthquake [ENEMY1 ABILITY 148]
4094:Reaction [ENEMY1 ABILITY 149]
4095:Heavenly Strike [ENEMY1 ABILITY 150]
4096:Diamond Dust [ENEMY1 ABILITY 151]
4097:Attack [ENEMY1 ABILITY 152]
4098:Attack [ENEMY1 ABILITY 153]
4099:Gaze [ENEMY1 ABILITY 154]
409A:Attack [ENEMY1 ABILITY 155]
409B:Attack [ENEMY1 ABILITY 156]
409C:Attack [ENEMY1 ABILITY 157]
409D:Attack [ENEMY1 ABILITY 158]
409E:Attack [ENEMY1 ABILITY 159]
409F:Attack [ENEMY1 ABILITY 160]
40A0:Attack [ENEMY1 ABILITY 161]
40A1:Attack [ENEMY1 ABILITY 162]
40A2:Mimic1 [ENEMY1 ABILITY 163]
40A3:Mimic2 [ENEMY1 ABILITY 164]
40A4:Mimic3 [ENEMY1 ABILITY 165]
40A5:Mimic4 [ENEMY1 ABILITY 166]
40A6:Energy Blast [ENEMY1 ABILITY 167]
40A7:Attack [ENEMY1 ABILITY 168]
40A8:GNAW [ENEMY1 ABILITY 169]
40A9:Stone Gaze [ENEMY1 ABILITY 170]
40AA:Charging [ENEMY1 ABILITY 171]
40AB:Charging [ENEMY1 ABILITY 172]
40AC:Heavenly Strike [ENEMY1 ABILITY 173]
40AD:Impulse [ENEMY1 ABILITY 174]
40AE:Attack [ENEMY1 ABILITY 175]
40AF:Pain [ENEMY1 ABILITY 176]
40B0:Oblivion [ENEMY1 ABILITY 177]
40B1:Daigoro [ENEMY1 ABILITY 178]
40B2:Paean of the Heavens [ENEMY1 ABILITY 179]
40B3:Attack [ENEMY1 ABILITY 180]
40B4:Putrid Breath [ENEMY1 ABILITY 181]
40B5:Mega Gastric Juice [ENEMY1 ABILITY 182]
40B6:Chow Time [ENEMY1 ABILITY 183]
40B7:Gastric Juice Blast [ENEMY1 ABILITY 184]
40B8:Chaos [ENEMY1 ABILITY 185]
40B9:Hyper Blaster [ENEMY1 ABILITY 186]
40BA:Attack [ENEMY1 ABILITY 187]
40BB:Cold Stare [ENEMY1 ABILITY 188]
40BC:10000 Needles [ENEMY1 ABILITY 189]
40BD:Hades Claws [ENEMY1 ABILITY 190]
40BE:Blade Shower [ENEMY1 ABILITY 191]
40BF:Shining [ENEMY1 ABILITY 192]
40C0:Fangs of Ruin [ENEMY1 ABILITY 193]
40C1:Fangs of Chaos [ENEMY1 ABILITY 194]
40C2:Fangs of Hell [ENEMY1 ABILITY 195]
40C3:Black Stare [ENEMY1 ABILITY 196]
40C4:Shockwave [ENEMY1 ABILITY 197]
40C5:Drain Touch [ENEMY1 ABILITY 198]
40C6:Poison Touch [ENEMY1 ABILITY 199]
40C7:Attack [ENEMY1 ABILITY 200]
40C8:Rush Attack [ENEMY1 ABILITY 201]
40C9:Nothing [ENEMY1 ABILITY 202]
40CA:Nothing [ENEMY1 ABILITY 203]
40CB:Nothing [ENEMY1 ABILITY 204]
40CC:Bewitching Stab [ENEMY1 ABILITY 205]
40CD:Venomous Stab [ENEMY1 ABILITY 206]
40CE:Attack [ENEMY1 ABILITY 207]
40CF:Crush Spike [ENEMY1 ABILITY 208]
40D0:Salvo [ENEMY1 ABILITY 209]
40D1:Beak [ENEMY1 ABILITY 210]
40D2:Beak of Woe [ENEMY1 ABILITY 211]
40D3:Reppageki [ENEMY1 ABILITY 212]
40D4:Bushinzan [ENEMY1 ABILITY 213]
40D5:Shinryudan [ENEMY1 ABILITY 214]
40D6:Goodnight [ENEMY1 ABILITY 215]
40D7:Attack [ENEMY1 ABILITY 216]
40D8:Ethereal Cannon [ENEMY1 ABILITY 217]
40D9:Ultra Spark [ENEMY1 ABILITY 218]
40DA:Razzia [ENEMY1 ABILITY 219]
40DB:Camisade [ENEMY1 ABILITY 220]
40DC:Passado [ENEMY1 ABILITY 221]
40DD:Delta Attack [ENEMY1 ABILITY 222]
40DE:Mighty Guard [ENEMY1 ABILITY 223]
40DF:Attack [ENEMY1 ABILITY 224]
40E0:Breath [ENEMY1 ABILITY 225]
40E1:Breath [ENEMY1 ABILITY 226]
40E2:Space-Time Vorpal [ENEMY1 ABILITY 227]
40E3:Triple Attack [ENEMY1 ABILITY 228]
40E4:Attack3 [ENEMY1 ABILITY 229]
40E5:Die [ENEMY1 ABILITY 230]
40E6:Hellfire [ENEMY1 ABILITY 231]
40E7:Thor's Hammer [ENEMY1 ABILITY 232]
40E8:Attack [ENEMY1 ABILITY 233]
40E9:Self-Destruct [ENEMY1 ABILITY 234]
40EA:Voodoo [ENEMY1 ABILITY 235]
40EB:Regurgitate [ENEMY1 ABILITY 236]
40EC:Attack [ENEMY1 ABILITY 237]
40ED:Slowga [ENEMY1 ABILITY 238]
40EE:Attack [ENEMY1 ABILITY 239]
40EF:Pop Fly [ENEMY1 ABILITY 240]
40F0:Attack [ENEMY1 ABILITY 241]
40F1:Emblem of the Cosmos [ENEMY1 ABILITY 242]
40F2:99999 Needles [ENEMY1 ABILITY 243]
40F3:Ultima [ENEMY1 ABILITY 244]
40F4:Armageddon [ENEMY1 ABILITY 245]
40F5:Megaton Punch [ENEMY1 ABILITY 246]
40F6:Eraser [ENEMY1 ABILITY 247]
40F7:Toxic Cloud [ENEMY1 ABILITY 248]
40F8:Toxic Spray [ENEMY1 ABILITY 249]
40F9:Hundred Thorns [ENEMY1 ABILITY 250]
40FA:Rainbow [ENEMY1 ABILITY 251]
40FB:Convergence [ENEMY1 ABILITY 252]
40FC:Condemn [ENEMY1 ABILITY 253]
40FD:Hydraulic Press [ENEMY1 ABILITY 254]
40FE:Contamination [ENEMY1 ABILITY 255]
40FF:Karma [ENEMY1 ABILITY 256]
4100:Razzia [ENEMY1 ABILITY 257]
4101:Camisade [ENEMY1 ABILITY 258]
4102:Passado [ENEMY1 ABILITY 259]
4103:Attack [ENEMY1 ABILITY 260]
4104:Calamity [ENEMY1 ABILITY 261]
4105:Mega-Graviton [ENEMY1 ABILITY 262]
4106:Delta Attack [ENEMY1 ABILITY 263]
4107:Kozuka [ENEMY1 ABILITY 264]
4108:Wakizashi [ENEMY1 ABILITY 265]
4109:Wakizashi [ENEMY1 ABILITY 266]
410A:Zanmato [ENEMY1 ABILITY 267]
410B:Daigoro [ENEMY1 ABILITY 268]
410C:Hellfire [ENEMY1 ABILITY 269]
410D:Hellfire [ENEMY1 ABILITY 270]
410E:Meteor Strike [ENEMY1 ABILITY 271]
410F:Attack [ENEMY1 ABILITY 272]
4110:Aerospark [ENEMY1 ABILITY 273]
4111:Thor's Hammer [ENEMY1 ABILITY 274]
4112:Thor's Hammer [ENEMY1 ABILITY 275]
4113:Thundaja [ENEMY1 ABILITY 276]
4114:Attack [ENEMY1 ABILITY 277]
4115:Attack [ENEMY1 ABILITY 278]
4116:Aerospark [ENEMY1 ABILITY 279]
4117:Heavenly Strike [ENEMY1 ABILITY 280]
4118:Diamond Dust [ENEMY1 ABILITY 281]
4119:Attack [ENEMY1 ABILITY 282]
411A:Mega Flare [ENEMY1 ABILITY 283]
411B:Impulse [ENEMY1 ABILITY 284]
411C:Attack [ENEMY1 ABILITY 285]
411D:Pain [ENEMY1 ABILITY 286]
411E:Oblivion [ENEMY1 ABILITY 287]
411F:Immolation [ENEMY1 ABILITY 288]
4120:Obliteration [ENEMY1 ABILITY 289]
4121:Judgment Day [ENEMY1 ABILITY 290]
4122:Separation [ENEMY1 ABILITY 291]
4123:Appearance [ENEMY1 ABILITY 292]
4124:Death [ENEMY1 ABILITY 293]
4125:Regeneration [ENEMY1 ABILITY 294]
4126:Atrophy [ENEMY1 ABILITY 295]
4127:Attack [ENEMY1 ABILITY 296]
4128:Energy Blast [ENEMY1 ABILITY 297]
4129:Tera-Graviton [ENEMY1 ABILITY 298]
412A:Mighty Guard [ENEMY1 ABILITY 299]
412B:Extra 44 [ENEMY1 ABILITY 300]
6000:Attack [ENEMY2 ABILITY 001]
6001:Special 1 [ENEMY2 ABILITY 002]
6002:Special 2 [ENEMY2 ABILITY 003]
6003:Appear [ENEMY2 ABILITY 004]
6004:Sigh [ENEMY2 ABILITY 005]
6005:Venom [ENEMY2 ABILITY 006]
6006:Staccato [ENEMY2 ABILITY 007]
6007:Transform [ENEMY2 ABILITY 008]
6008:Death [ENEMY2 ABILITY 009]
6009:Tentacles absorb magic! [ENEMY2 ABILITY 010]
600A:Spines [ENEMY2 ABILITY 011]
600B:Blender [ENEMY2 ABILITY 012]
600C:Blitzball Rush [ENEMY2 ABILITY 013]
600D:Doze Ball [ENEMY2 ABILITY 014]
600E:Blind Ball [ENEMY2 ABILITY 015]
600F:Mute Ball [ENEMY2 ABILITY 016]
6010:Thwack [ENEMY2 ABILITY 017]
6011:Thwack [ENEMY2 ABILITY 018]
6012:Crane [ENEMY2 ABILITY 019]
6013:Death [ENEMY2 ABILITY 020]
6014:Death [ENEMY2 ABILITY 021]
6015:Crane activated. [ENEMY2 ABILITY 022]
6016:Tentacles [ENEMY2 ABILITY 023]
6017:Shove [ENEMY2 ABILITY 024]
6018:Gets up. [ENEMY2 ABILITY 025]
6019:Charging [ENEMY2 ABILITY 026]
601A:You're next! [ENEMY2 ABILITY 027]
601B:Fist of Fury [ENEMY2 ABILITY 028]
601C:Death [ENEMY2 ABILITY 029]
601D:Death [ENEMY2 ABILITY 030]
601E:Sonic Boom [ENEMY2 ABILITY 031]
601F:Bash [ENEMY2 ABILITY 032]
6020:Flank [ENEMY2 ABILITY 033]
6021:Mana Beam [ENEMY2 ABILITY 034]
6022:Gatling Gun [ENEMY2 ABILITY 035]
6023:Bit [ENEMY2 ABILITY 036]
6024:Aqua Shooter [ENEMY2 ABILITY 037]
6025:Depth Charges [ENEMY2 ABILITY 038]
6026:Rise [ENEMY2 ABILITY 039]
6027:Dive [ENEMY2 ABILITY 040]
6028:Countdown [ENEMY2 ABILITY 041]
6029:Drawn to Sin. [ENEMY2 ABILITY 042]
602A:Death [ENEMY2 ABILITY 043]
602B:Move [ENEMY2 ABILITY 044]
602C:Death [ENEMY2 ABILITY 045]
602D:Death [ENEMY2 ABILITY 046]
602E:Swallow [ENEMY2 ABILITY 047]
602F:Regurgitate [ENEMY2 ABILITY 048]
6030:Death [ENEMY2 ABILITY 049]
6031:Venom [ENEMY2 ABILITY 050]
6032:Stone Punch [ENEMY2 ABILITY 051]
6033:KO Punch [ENEMY2 ABILITY 052]
6034:Poison Claw [ENEMY2 ABILITY 053]
6035:Lord Ochu falls asleep. [ENEMY2 ABILITY 054]
6036:Elemental Shift [ENEMY2 ABILITY 055]
6037:Half HP [ENEMY2 ABILITY 056]
6038:One HP [ENEMY2 ABILITY 057]
6039:Fire [ENEMY2 ABILITY 058]
603A:Blizzard [ENEMY2 ABILITY 059]
603B:Thunder [ENEMY2 ABILITY 060]
603C:Water [ENEMY2 ABILITY 061]
603D:Assault [ENEMY2 ABILITY 062]
603E:Hi-Potion [ENEMY2 ABILITY 063]
603F:Press [ENEMY2 ABILITY 064]
6040:Remedy [ENEMY2 ABILITY 065]
6041:Shremedy [ENEMY2 ABILITY 066]
6042:Photon Wings [ENEMY2 ABILITY 067]
6043:Mana Breath [ENEMY2 ABILITY 068]
6044:Tail Sweep [ENEMY2 ABILITY 069]
6045:Berserk Tail [ENEMY2 ABILITY 070]
6046:Counter-Attack [ENEMY2 ABILITY 071]
6047:Attack All [ENEMY2 ABILITY 072]
6048:Attack [ENEMY2 ABILITY 073]
6049:Attack [ENEMY2 ABILITY 074]
604A:Earthquake [ENEMY2 ABILITY 075]
604B:Photon Spray [ENEMY2 ABILITY 076]
604C:Stone Gaze [ENEMY2 ABILITY 077]
604D:Glyph Mine [ENEMY2 ABILITY 078]
604E:Attack [ENEMY2 ABILITY 079]
604F:Break [ENEMY2 ABILITY 080]
6050:Banish [ENEMY2 ABILITY 081]
6051:Seymour dismisses Anima! [ENEMY2 ABILITY 082]
6052:Pain [ENEMY2 ABILITY 083]
6053:Command 93 [ENEMY2 ABILITY 084]
6054:Command 94 [ENEMY2 ABILITY 085]
6055:Command 95 [ENEMY2 ABILITY 086]
6056:Command 96 [ENEMY2 ABILITY 087]
6057:Attack [ENEMY2 ABILITY 088]
6058:Attack [ENEMY2 ABILITY 089]
6059:Attack [ENEMY2 ABILITY 090]
605A:Nautilus Charge [ENEMY2 ABILITY 091]
605B:Swooping Scythe [ENEMY2 ABILITY 092]
605C:Drain Touch [ENEMY2 ABILITY 093]
605D:Attack [ENEMY2 ABILITY 094]
605E:Desperado [ENEMY2 ABILITY 095]
605F:Reflect [ENEMY2 ABILITY 096]
6060:Test [ENEMY2 ABILITY 097]
6061:Poison Breath [ENEMY2 ABILITY 098]
6062:Stone Gaze [ENEMY2 ABILITY 099]
6063:Photon Spray [ENEMY2 ABILITY 100]
6064:Inhale [ENEMY2 ABILITY 101]
6065:Out of breath range. [ENEMY2 ABILITY 102]
6066:Critical Strike [ENEMY2 ABILITY 103]
6067:Death [ENEMY2 ABILITY 104]
6068:Magic re-enabled. [ENEMY2 ABILITY 105]
6069:Regurgitate [ENEMY2 ABILITY 106]
606A:Regurgitate [ENEMY2 ABILITY 107]
606B:Photon Spray [ENEMY2 ABILITY 108]
606C:Warp [ENEMY2 ABILITY 109]
606D:Absorb [ENEMY2 ABILITY 110]
606E:Silence [ENEMY2 ABILITY 111]
606F:Turn [ENEMY2 ABILITY 112]
6070:Blind [ENEMY2 ABILITY 113]
6071:Sleep [ENEMY2 ABILITY 114]
6072:Confuse [ENEMY2 ABILITY 115]
6073:Guided Missiles [ENEMY2 ABILITY 116]
6074:Cross Cleave [ENEMY2 ABILITY 117]
6075:Total Annihilation [ENEMY2 ABILITY 118]
6076:Shattering Claw [ENEMY2 ABILITY 119]
6077:Biora [ENEMY2 ABILITY 120]
6078:Lance of Atrophy [ENEMY2 ABILITY 121]
6079:Flare [ENEMY2 ABILITY 122]
607A:Osmose [ENEMY2 ABILITY 123]
607B:Curse [ENEMY2 ABILITY 124]
607C:Dispelling Slap [ENEMY2 ABILITY 125]
607D:Command 135 [ENEMY2 ABILITY 126]
607E:Metamorphosis [ENEMY2 ABILITY 127]
607F:Metamorphosis [ENEMY2 ABILITY 128]
6080:Hellbiter [ENEMY2 ABILITY 129]
6081:Mind Blast [ENEMY2 ABILITY 130]
6082:Mega Death [ENEMY2 ABILITY 131]
6083:Gravija [ENEMY2 ABILITY 132]
6084:Jecht Beam [ENEMY2 ABILITY 133]
6085:Triumphant Grasp [ENEMY2 ABILITY 134]
6086:Ultimate Jecht Shot [ENEMY2 ABILITY 135]
6087:Jecht Bomber [ENEMY2 ABILITY 136]
6088:Draws sword. [ENEMY2 ABILITY 137]
6089:Blade Blitz [ENEMY2 ABILITY 138]
608A:Jecht Beam [ENEMY2 ABILITY 139]
608B:Power Wave [ENEMY2 ABILITY 140]
608C:Command 150 [ENEMY2 ABILITY 141]
608D:Slowga [ENEMY2 ABILITY 142]
608E:Sin draws back. [ENEMY2 ABILITY 143]
608F:Sin draws closer. [ENEMY2 ABILITY 144]
6090:Gravija [ENEMY2 ABILITY 145]
6091:Negation [ENEMY2 ABILITY 146]
6092:Ram [ENEMY2 ABILITY 147]
6093:Smack [ENEMY2 ABILITY 148]
6094:Gravija [ENEMY2 ABILITY 149]
6095:Command 159 [ENEMY2 ABILITY 150]
6096:Sigh [ENEMY2 ABILITY 151]
6097:Venom [ENEMY2 ABILITY 152]
6098:Thrashing [ENEMY2 ABILITY 153]
6099:Exits shell. [ENEMY2 ABILITY 154]
609A:Enters shell. [ENEMY2 ABILITY 155]
609B:Magic absorbed. [ENEMY2 ABILITY 156]
609C:Giga-Graviton [ENEMY2 ABILITY 157]
609D:Gaze [ENEMY2 ABILITY 158]
609E:Gaze [ENEMY2 ABILITY 159]
609F:Gaze [ENEMY2 ABILITY 160]
60A0:Gaze [ENEMY2 ABILITY 161]
60A1:White Wind [ENEMY2 ABILITY 162]
60A2:Fire Breath [ENEMY2 ABILITY 163]
60A3:Aqua Breath [ENEMY2 ABILITY 164]
60A4:Mighty Guard [ENEMY2 ABILITY 165]
60A5:Bulldoze [ENEMY2 ABILITY 166]
60A6:Gravija [ENEMY2 ABILITY 167]
60A7:Negation [ENEMY2 ABILITY 168]
60A8:Core gathers energy. [ENEMY2 ABILITY 169]
60A9:Mortibsorption [ENEMY2 ABILITY 170]
60AA:Assault [ENEMY2 ABILITY 171]
60AB:Multi-Fira [ENEMY2 ABILITY 172]
60AC:Command 182 [ENEMY2 ABILITY 173]
60AD:Multi-Blizzara [ENEMY2 ABILITY 174]
60AE:Command 184 [ENEMY2 ABILITY 175]
60AF:Multi-Thundara [ENEMY2 ABILITY 176]
60B0:Command 186 [ENEMY2 ABILITY 177]
60B1:Multi-Watera [ENEMY2 ABILITY 178]
60B2:Command 188 [ENEMY2 ABILITY 179]
60B3:The crane responds. [ENEMY2 ABILITY 180]
60B4:Death [ENEMY2 ABILITY 181]
60B5:Summon Anima [ENEMY2 ABILITY 182]
60B6:Gravija [ENEMY2 ABILITY 183]
60B7:Negation [ENEMY2 ABILITY 184]
60B8:Gravija [ENEMY2 ABILITY 185]
60B9:Negation [ENEMY2 ABILITY 186]
60BA:Core gathers energy. [ENEMY2 ABILITY 187]
60BB:Negation [ENEMY2 ABILITY 188]
60BC:Sin remains motionless. [ENEMY2 ABILITY 189]
60BD:Core is inactive. [ENEMY2 ABILITY 190]
60BE:Megaton [ENEMY2 ABILITY 191]
60BF:Slime [ENEMY2 ABILITY 192]
60C0:Broken shell. [ENEMY2 ABILITY 193]
60C1:Hides in shell. [ENEMY2 ABILITY 194]
60C2:Emerges from shell. [ENEMY2 ABILITY 195]
60C3:Death [ENEMY2 ABILITY 196]
60C4:Core gathers energy. [ENEMY2 ABILITY 197]
60C5:Negation [ENEMY2 ABILITY 198]
60C6:Left-Arm Strike [ENEMY2 ABILITY 199]
60C7:Left-Arm Strike 2 [ENEMY2 ABILITY 200]
60C8:Jecht Bomber [ENEMY2 ABILITY 201]
60C9:Triumphant Grasp [ENEMY2 ABILITY 202]
60CA:Death [ENEMY2 ABILITY 203]
60CB:Death [ENEMY2 ABILITY 204]
60CC:Death [ENEMY2 ABILITY 205]
60CD:Death [ENEMY2 ABILITY 206]
60CE:Death [ENEMY2 ABILITY 207]
60CF:Death [ENEMY2 ABILITY 208]
60D0:Death [ENEMY2 ABILITY 209]
60D1:Hellbiter [ENEMY2 ABILITY 210]
60D2:Power Wave [ENEMY2 ABILITY 211]
60D3:Sonic Wings [ENEMY2 ABILITY 212]
60D4:Energy Blast [ENEMY2 ABILITY 213]
60D5:Energy Ray [ENEMY2 ABILITY 214]
60D6:Meteor Strike [ENEMY2 ABILITY 215]
60D7:Hellfire [ENEMY2 ABILITY 216]
60D8:Aerospark [ENEMY2 ABILITY 217]
60D9:Thor's Hammer [ENEMY2 ABILITY 218]
60DA:Heavenly Strike [ENEMY2 ABILITY 219]
60DB:Diamond Dust [ENEMY2 ABILITY 220]
60DC:Impulse [ENEMY2 ABILITY 221]
60DD:Mega Flare [ENEMY2 ABILITY 222]
60DE:Pain [ENEMY2 ABILITY 223]
60DF:Oblivion [ENEMY2 ABILITY 224]
60E0:Kozuka [ENEMY2 ABILITY 225]
60E1:Wakizashi [ENEMY2 ABILITY 226]
60E2:Zanmato [ENEMY2 ABILITY 227]
60E3:Camisade [ENEMY2 ABILITY 228]
60E4:Razzia [ENEMY2 ABILITY 229]
60E5:Passado [ENEMY2 ABILITY 230]
60E6:Delta Attack [ENEMY2 ABILITY 231]
60E7:Possessed by Yu Yevon! (Valefor) [ENEMY2 ABILITY 232]
60E8:Possessed by Yu Yevon! (Ifrit)  [ENEMY2 ABILITY 233]
60E9:Possessed by Yu Yevon! (Ixion)   [ENEMY2 ABILITY 234]
60EA:Possessed by Yu Yevon! (Shiva)   [ENEMY2 ABILITY 235]
60EB:Possessed by Yu Yevon! (Bahamut) [ENEMY2 ABILITY 236]
60EC:Possessed by Yu Yevon! (Yojimbo) [ENEMY2 ABILITY 237]
60ED:Possessed by Yu Yevon! (Anima) [ENEMY2 ABILITY 238]
60EE:Possessed by Yu Yevon! (Magus Sisters, crashes game except during final battle) [ENEMY2 ABILITY 239]
60EF:Death [ENEMY2 ABILITY 240]
60F0:Ultima [ENEMY2 ABILITY 241]
60F1:Wings start to flicker. [ENEMY2 ABILITY 242]
60F2:Death [ENEMY2 ABILITY 243]
60F3:Dispel All [ENEMY2 ABILITY 244]
60F4:Command 254 [ENEMY2 ABILITY 245]
60F5:Full-Life [ENEMY2 ABILITY 246]
60F6:Mind Blast [ENEMY2 ABILITY 247]

It may also be of your interest, that each character and aeon battle model can be changed by just editing a 2 byte value in memory, which is in the following locations:

Code: [Select]
Tidus: FFX.exe+842390
Yuna: FFX.exe+842394
Auron: FFX.exe+842398
Kimahri: FFX.exe+84239C
Wakka: FFX.exe+8423A0
Lulu: FFX.exe+8423A4
Rikku: FFX.exe+8423A8
Seymour (party member only) : FFX.exe+8423AC
Valefor, should be used for flying and underwater enemies: FFX.exe+8423B0
Ifrit: FFX.exe+8423B4
Ixion: FFX.exe+8423B8
Shiva: FFX.exe+8423BC
Bahamut: FFX.exe+8423C0
Anima: FFX.exe+8423C4
Yojimbo: FFX.exe+8423C8
Cindy: FFX.exe+8423CC
Sandy: FFX.exe+8423D0
Mindy: FFX.exe+8423D4

And I have some of the values to use back from the old PS2 days, however, I have just allocated in battle memory the location in which the game loads the model ID of each enemy, so time to go through every single battle in the game to make a full list. Note that freezing the value to something else doesn't seem to do anything, as this is allocated during battle and trashed after it is over as I was saying. The pointer that lets you access the addresses for battle data of characters and aeons, is "FFX.exe"+00D334CC". Using this pointer, you have Tidus current HP (4 bytes) in offset +5D0, Yuna current HP in offset +1560, and everyone else always separated by a total offset of +F90, in the usual internal order of the game, which goes all the way to Mindy, whose current HP is located at offset +10E60. In other words, Valefor data is after Seymour data. For the enemies, the structure of this data is the same, and the offsets respective to the pointer are also the same (exact coincidence), but there are only 8 enemies, and the pointer is instead "FFX.exe"+00D34460". So enemy 8 data is where Seymour's data would be (in offset respective to pointer, I mean). Interestingly, the game has flags for the auto-abilities HP stroll, MP stroll and No Encounters, despite this data being useless in battle. Some other offsets for Tidus or enemy 1, if you want a full list just tell me:

Code: [Select]
Strenght (byte) +5A8
Tick counter (byte) +65C
Icon main (byte) +5C2
Icon sub (byte) +5C3
Doom starting turns, not current turns (byte) +5C9
Command number called by defend button (byte) +6C8
Position (byte) +6D4
Absorbs Fire (First bit in byte) +5DA
Weak to Holy (5th bit in byte) +5DD
Damage types immunities (flags in byte) +5B8
Resistance to instant Death (byte) +641
Immunity to eject (First bit in byte) +65B
Current Sleep amount of turns (byte) +608
Suffers KO status (First bit in byte) +606
Suffers Eject status (First bit in byte) +617
Resistance to Shell (Byte) +650
Immunity to Auto-Life (Second bit in byte) +65B
Current Shell amount of turns (byte) +60B
How many Cheers does it have (byte) +65E
Suffers Auto-Life status (Second bit in byte) +617
Has Armored property (First bit in byte) +5B8
Suffers double maxHP status (First bit in byte) +640
Suffers "9999" status (Third bit in byte) +640
Has Alchemy auto-ability active (Second bit in byte) +6BD
Has Piercing auto-ability active (5th bit in byte) +6BD
Suffers Boost status (Last bit in byte) +616.
Model value 1? (2 bytes) +4
Model value 2? (2 bytes) +8
Model value 3? (2 bytes) +E

Some model values (on my way now to make a full list... so see you soon)

Code: [Select]
0001:Tidus
0002:Yuna
0003:Auron
0004:Kimahri
0005:Wakka
0006:Lulu
0007:Rikku
0008:Seymour
3001:Valefor
3002:Ifrit
3003:Ixion
3004:Shiva
3006:Bahamut
3007:Anima
3008:Yojimbo
3017:Daigoro
3009:Cindy
300A:Sandy
300B:Mindy
114E:Dark Valefor
114F:Dark Ifrit
1150:Dark Ixion
1151:Dark Shiva
1152:Dark Bahamut
1153:Dark Anima
1154:Dark Yojimbo
1074:Dark Daigoro
1155:Dark Cindy
1156:Dark Sandy
1157:Dark Mindy
1158:Penance
1159:Penance arm
1069:Neslug
107E:Seymour Natus
108E:Seymour Flux
1083:Seymour Omnis
1086:Biran
1087:Yenke
1082:Yunalesca
1084:Braska's Final Aeon
10AD:Yu Pagoda 1
10AE:Yu Pagoda 2
10B0:Yu Yevon
« Last Edit: 2023-06-13 22:59:54 by fireYtail »

Karifean

  • *
  • Posts: 65
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #59 on: 2023-06-14 15:03:38 »
Ah the instructions were a bit wrong. The .java files are source files, there's no .jar already existing in the repository; since you need to bring your own extracted ffx_ps2 folder (pretty sure it'd be illegal to just put those up myself) you do need to generate the executable manually after you add it. I updated the readme.md to give more instructions on how to do that as well as how to then run it.

I don't really do memory editing myself, but your battle flag lists seems to be referring to the same structures as these files:

https://github.com/fkelava/fahrenheit/blob/main/ctables/x_btlactor.ct
https://github.com/fkelava/fahrenheit/blob/main/src/cs/Fahrenheit.CoreLib/x_btlactor.g.cs

That being said, we are kinda misusing this topic at this point. Might need to move this to the Scripting & Reverse Engineering forum from here on.

fireYtail

  • *
  • Posts: 5
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #60 on: 2023-09-24 11:56:08 »
Ah the instructions were a bit wrong. The .java files are source files, there's no .jar already existing in the repository; since you need to bring your own extracted ffx_ps2 folder (pretty sure it'd be illegal to just put those up myself) you do need to generate the executable manually after you add it. I updated the readme.md to give more instructions on how to do that as well as how to then run it.

In your GitHub readme instructions, you just say this:



I googled "Mavern" and this is the only thing I found https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.zip
This is gets me a "bin\mvn.cmd" file, which is not an exe (Windows executable) as you say, but a Windows command line script. I added it to the path as indicated but no matter what I do it always gives me an error saying that it couldn't find or load main class org.codehaus.plexus.classworlds.launcher.Launcher and I have no idea what to do from here. You don't specify what "package" in "nvm package" means, but no matter what I try (main GitHub folder, subfolders, java files), it always gives me that error.

Sorry, but I'm not a programmer, I'm an end-user, so I'm not knowledgeable with building software from source code, as I'm the average PC user that has all the already pre-compiled EXE/JAR/whatever files (executables) instead of being told by the developer that no, the end-user has to build the software because... It has to be built with copyrighted files? Why not just make it read the folder/files from an external path, as any normal software would? Why require that, upon building the software, the very data that software will be working with has to be pre-built into the executable, requiring you to re-build the executable as soon as you make any changes to the data, since the data isn't external to the executable file that's reading it? Imagine if Photoshop required users to use the source code with the very image file they're going to edit and build the executable, rather than loading the image file externally. Do you think this is a realistic take?

I can't speak from a programmer's/software developer side why this would make sense, since I'm not one. But as an end-user, I don't expect people to be requiring me to build their own software from the source code myself because "it's illegal to make it read copyrighted files externally". What kind of argument is that? Is it that difficult to make it read external files? And yes, having the source code and being able (if I were) to build it myself is always a plus, since it makes it impossible for you to be giving me an executable with malware or something. But if I trust that it's not malware, and if I can read the source code anyway, why not just build it yourself and provide it to others, instead of requiring for others to build it? Others who don't necessarily have experience with building software from code nor distrust in the developer.

Karifean

  • *
  • Posts: 65
    • View Profile
Re: [FFX] Skill editor - Ronso (v0.3.1.0)
« Reply #61 on: 2023-09-25 09:03:07 »
It's complicated to set up because I haven't had the motivation or drive to spend time and energy on making it easy to use for non-developers. It works with IntelliJ and that's good enough for me and likely most others that have been using it. The answer to "why like this and not like that" is always "first thing that came to mind to make it do what I need it to". Mind you by now the tool *can* read files from an external path, it now has that as its first argument (the <SourcesRootPath>). And far as I'm concerned it won't be a proper tool worth caring deeply about user experience for until it has some edit functionality with a proper UI at least like this Ronso editor, and that's still far off at best, and may be outside the scope of what I myself even want to take on, so who knows when anyone else will take up the task.

Regardless like I said before, dead as this forum may be this is still seriously off topic in here and I made a topic for my own parser here:
https://forums.qhimm.com/index.php?topic=21411.0

It also now contains links to both a built (.jar) version of the parser as well as some parsing output directly as text files. This should give you what you need. And please, don't make me regret making this public in its current state in the first place by bombarding me with complaints over why it's not done in a different way. I've done what I can to share what I'm doing without having to go out of my way to spend time and energy on something I don't want to, and coming in here like you just did certainly does absolutely nothing to motivate me into making it more accessible.