Users browsing this thread: 1 Guest(s)
Patch: Replaced Command - Possess with 8 spell list

#1
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
author: Catone
apply to a FF3us 1.0 headered ROM
Download

[Image: possess.png]

Replaced the Possess Command with a command that opens a window containing 8 pre-set spells. Nothing fancy like learning or unlocking. You assign them, they show. Kinda hard to make one screenshot show what it does but I tried.

See Readme for details.
Code:
This patch is designed to be applied to the following ROM:
FF3us V1.0
Headered
Expanded to 32MB using FF3usME

SHOULD work on an Un-Headered ROM, however it must have a HEADER during application of the IPS.

INX10________________________________________________________________________

Index:                             INX10

General Overview:         GEN11

Conflicts:                        CON12

Possible Bugs:                POS13

Editing Generic Anim    EGA14

Editing Spell List:             ESL15

Editing Target List:          ETL16

MagiTek List Offsets:       ADR17

Tech List Offsets:            ADR18

Casting Anim Offset:    ADR19


GEN11_______________________________________________________________________

GENERAL OVERVIEW:

***I have tried to make this readme as usable as possible, yet also containing all information that you may, or may not, need in order to use this patch any way you see fit. I also attempted to include information/instructions in a manner so that any user of any basic level of experience can make it work. Depending on your personal experience level this may, or may not, require “work” as well as the ability and willingness to actually READ this document, or at least some parts of it. Of course if you have made it THIS far, then you should be okay. If your not reading this (or only reading it because nobody will answer your questions that are directly explained here), it is your own fault that you can’t make it work and you should be ashamed of yourself. Slap yourself, three or more times, then continue reading. Either way, I sincerely hope you can find use of this patch and enjoy what it enables you to do. Have fun with whatever your endeavor may be.

This patch replaces the Possess Command with a new "Tech" command which uses the MagiTek command code to function. Free space used for new code begins at 3F/F100 on a Headered ROM and ends at 3F/F1A3. All other changes were made within normal code space in an effort to impact as little as possible anything outside the scope of this patch.

See included Spreadsheet for direct code changes. For the spreadsheet to properly show the correct offsets in the A column, the DEC2HEX formula will have to be enabled. For Microsoft Excel this requires the Add-In "Analysis ToolPak" (I could have swore it was a "programmer" add-in though.) If further information is needed, try to Google "DEC2HEX Excel" or ask for assistance.

No code changes were made to the normal POSSESS command directly. This patch mostly redirects the pointers, in several places, and just a small amount of new code inside normal ROM space. The new "Tech" command was pointed to go directly inline with MagiTek's code. They run the same code until it comes time to draw and fill the menus in battle. At that point, checks are done to split the two commands to their proper list.

In order to allow a large selection of spell types, and allow MagiTek to function normally, the new command required starting spell calculations. In order to calculate the spells, the list/table at: C1/64FF (un-Headered address) and the list/table directly below that had to be expanded. The first list (which was used to check which commands needed to be calculated) is still in the same place, it now contains 5 commands instead of 4. The second list was for what spell number the previous listed commands started at. It was moved to FF/EF9D (un-Headered). This also allows both list to be expanded farther if desired for other commands, up to 4 extra spaces on both list.

The spells for the new "Tech" command start at 5D (Same as the BLITZ command, Spell #5D Pummel). Normal MagiTek commands start at +26 hex from that value. When making changes to the spell list for MagiTek or "Tech" you will need to subtract 93 (decimal) from the normal spell number before writing it to the table of spells for it to work properly. This does not allow for any normal Magic or Summons to be added to the list.

The lowest spell number that can be added is #93 (Pummel) and the upper limit seems to be #215 (Shrapnel). I did not test exactly the upper limit, however #215 (Shrapnel) does work if added, higher values tend to bug, use at own risk.

***Due to the spell calculation changes (MagiTek command starts spells at #93 instead of #131) so FF3usME will not edit those list correctly, however, the targeting data can be edited using FF3usME. Since I do not know exactly what all those values are, you will need to set your Targeting list using FF3usME then go to the address provided below for normal MagiTek Targeting data, then copy those values over to "Tech's" Targeting data table.

There is enough space left empty in the correct location, if desired ONE check could be added to give Terra's MagiTek spell list to another character (or if done correctly a limited range of characters, + or - ONE actor number.) The same is provided for the new command's menu selection and should be set by default to give LIST 1 to any character with the command below guest slot 1 and LIST 2 going to guest slot 2.

The "auto battle" code for MagiTek (for using in Coliseum or while confused/charmed) was updated to use the new calculations, it was not updated to use more than the 3 vanilla elemental beams however (or any modified MagiTek spell list). Luckily for me, that was slightly beyond the scope of this patch because I really didn't want to update that code.

Unless user editing is done, MagiTek should seem to function as completely vanilla.

By default, the new skill is named "DaForce" by default (I wrote it, I'll call it what I wish!) and a random range of spells are already in the list with a correctly functioning targeting table. Not by any means balanced or practical, just something to fill the menu out and partially for testing. Editing is encouraged.

Renaming the new command can be done using FF3usME in the same manner you would change any other command’s name. FF3usME can also be used to add the command to whatever actor you wish, just as any other command. Continue reading for list of other things of note that can or can not be changed with FF3usME.

No actor has this new command by default. YOU are required to place it on the actor of your choice.

The two Ghost actors (normally found on the Phantom Train) that had the command “Possess” have had that command removed from their list. It is up to the user to give them something else or leave them as is.

CON12_______________________________________________________________________

CONFLICTS:

I make no promise that it will be compatible with any other patches, however it shouldn't conflict with many.

This patch WILL break FF3usME's ability to edit/change normal MagiTek spells list

This patch WILL conflict with patches that do the following:

Anything that changes MagiTek Commands
Anything that places code between 3F/F100 and 3F/F1A3
Anything that makes changes to the selection method of MagiTek menus (such as using Terra's list for someone else).


This patch MIGHT conflict with patches that do the following:

Anything that changes the Possess Command.
Anything that changes the MagiTek command.


POS13_______________________________________________________________________

POSSIBLE BUGS/GLITCHES:

I did test it, things worked. I did not play through the whole game with it and use it in every single way possible. If using this patch, inform me of anything odd that may be related to it and I'll look into it.

***There is the possibility that the check for "is MagiTek" while splitting the commands will come up 0 instead of 1D as it should while using MagiTek. Originally I had it check for "is Tech" but if used how I intended that check would require more accuracy than I could promise using the first method so it was changed to check for "is MagiTek" instead. In other words, there is the slim possibility that the "Tech" command list will show up instead of MagiTek from time to time. I could not reproduce this error at the time I packaged the patch but I tried to give it every chance to not be apparent as much as possible even if it does bug. It still has the possibility to show though when you open the MagiTek window. If it somehow becomes a huge problem, someone let me know and I'll try something new.

***"Tech" may or may not work at the Coliseum or while confused/charmed or while the game is using "auto-battle" for some other reason. It may crash, it may use the same code MagiTek uses, it might use the first spell in the list, it might not be used at all. Save before you try it, inform me how it goes please. If it does bad things, I'll beat it with a stick until it learns to behave.

***There are some graphical glitches that may come from using some spells. Due to the nature of this patch, and the desire to allow it to be customizable and open to multiple purposes, this can’t really be “fixed”. You will have to make the choice of what/how to use this patch. Your choice of spells may or may not cause glitches or bugs. Making changes to the casting animation may or may not fix some of these potential glitches. See the following section: EGA14 for more information and instructions on changing this setting.

EGA14_______________________________________________________________________

EDITING GENERIC CASTING ANIMATION:

With the wide variety of spell types usable with this command, I gave the new command the generic “magic” animation. Meaning, it does nothing fancy. On the downside, it also does nothing fancy, it simply does pretty much nothing at all. Meaning some spells (such as MegaHit) have special casting animations, yet since the casting doesn’t account for that the caster of that spell will remain a step or two in front of the normal formation. In theory, the next spell that moves the caster (such as a Blitz spell) may return them to their proper position. I didn’t have anything set up to test this (the monsters wouldn’t survive one cast, let alone a follow up). Regardless, should just be a minor visual glitch under normal use, unless directly abused.

An option for this would be to change the general casting animation to use something other than default magic, such as Lore (the blue triangle before casting) or Blitz (the flash thing it does before execution), or possibly even Shock (not sure what this one does, the sword swinging pre-cast comes with the spell MegaHit).

My recommendation, regardless if the generic animation has issues with your custom spell list, is to change it to better suit YOUR use of the command and the spell YOU place in it (if you fill it full of Blitz spells, then maybe you should use the Blitz animation for instance.)

***The un-Headered address for this is: C1/B7AD   The pre-set value is: EB AB

The table for this starts at un-Headered address: C1/B775

Some optional setting of note are:

Blitz:        1A B9

Lore:        E5 B8

Mimic:        88 BC

MagiTek:    C3 B7

Some values, such as HEALTH at 62 BB may cause undesired effects that overwrite some individual spell animations. Sorry, but you’ll just have to try a few and see what works for you and your list, or stick with the default and ignore any graphical abnormalities.

ESL15________________________________________________________________________

EDITING SPELL LISTS:

To make changes to the MagiTek or "Tech" spell list:

Obtain a spell list (Either a written list or use FF3usME's spell editor and view the list that way.

Make a list of the spells you want to have in the command, in order, 8 spells or less(writing them down in decimal format as displayed in FF3usME is fine at this point.)
***Note*** Keep in mind the lowest spell you can use is #93 and the highest is #215, maybe a few higher but not much if any. Also keep in mind that both MagiTek and both "Tech" list use one Targeting value table, meaning if you put a spell that heals in position 1 of List 1, and a spell that kills in position 1 of List 2, they will both start on the same target. Plan accordingly. BTW: While both list for both commands share targeting data, the two commands do not share targeting data.

Subtract 93 from each of those spell numbers. (Fire Beam Spell #131- 93 = 38)(Pummel Spell #93 - 93 = 0)

Convert that value to hex (38 = #26) (0 = 0)

Go to the proper address (listed below) for the list you want to change, type in the calculated spell numbers in order. (No more than 8 spells, fill any blanks or left over slots with FF.)

Open game, Nuke something.

ETL16________________________________________________________________________

EDITING TARGETING LIST:

Since I do not know exactly what all the values for targeting are/mean, you will need to set your MagiTek Targeting list using FF3usME then go to the address provided below for normal MagiTek Targeting data, then copy those values over to "Tech's" Targeting data table at the address listed.

ADR17_______________________________________________________________________

ADDRESSES:

Each section of data is 8 bytes.

Both MagiTek list share 1 targeting list.

Location for MagiTek List 1:
Headered: C1/930C
Un-Headered: C1/910C
Raw Headered: 0001930C
Raw Un-Headered: 0001910C

Location for MagiTek List 2:
Headered: C1/9314
Un-Headered: C1/9114
Raw Headered: 00019314
Raw Un-Headered: 00019114

Targeting Data for MagiTek Commands:
Headered: C1/9304
Un-Headered: C1/9104
Raw Headered: 00019304
Raw Un-Headered: 00019104

ADR18_______________________________________________________________________

Both "Tech" list share 1 targeting list.

Location for "Tech" List 1:
Headered: FF/F108
Un-Headered: FF/EF08
Raw Headered: 003FF108
Raw Un-Headered: 003FEF08

Location for "Tech" List 2:
Headered: FF/F110
Un-Headered: FF/EF10
Raw Headered: 003FF110
Raw Un-Headered: 003FEF10

Targeting Data for "Tech" Commands:
Headered: FF/F100
Un-Headered: FF/EF00
Raw Headered: 003FF100
Raw Un-Headered: 003FEF00

ADR19_______________________________________________________________________

General Command Battle Casting Animation Location:

Headered: C1/B9AD
Un-Headered: C1/B7AD
Raw Headered: 0001B9AD
Raw Un-Headered: 0001B7AD

If you have any problems or issues, I can't do anything about them without knowing what they are so please speak up.

Related threads to this project:
Targeting
Spell Number Calculations

Thanks for any and all help, assistance, advice, and ideas received, I needed it.


manual merge by madsiur, 12/07/2015


SO, I'm starting this thread in regards to a little patch I put together (which will be put in this post when finalized). It's working, just a couple little things that didn't work as I desired them to.

What it does, at this time, is redirect the "Summon" command, over to the MagiTek command code. Then I split the two commands when it comes time to load the menus in battle. Meaning, it changes the old unused Summon command into one that opens up a small window (exactly like using MagiTek) with a short list of spells and such (Blitzes, monster spells,lores, etc included) that can be added. Even though it uses MagiTek's code(not a copy of it, it uses the exact same code all the way up until filling the menus in battle) it does not effect MagiTek.

It does have two menus, which right now are set as: 1st list loads for everybody from the first guest slot and lower, the 2nd menu for the second guest spot. (This could be adjusted easy enough, but the thought was a magic list for Umaro and/or one guest, another list for guest slot #2).

Originally, I had intended for these list to be edited using FF6usME by placing them in the original place where MagiTek spells were located (this way, non-hex molesters could change them easily using the standard editor). Sadly, due to the editor being hard coded for Magitek spells and up, this would have just kept you from assigning summons and standard magic to the lists, (an acceptable loss for being easy to edit). However the summon skill uses the same spell calculations as the Esper Summon code. Meaning if I set this command to match up with the editor, all the normal summons are borked. It works just fine being set normally to include summons (also allows for more stuff to be put in the list, and doesn't break summons) but it royally jacks the editors ability to change them, even remotely correctly.

So, here we are. Since using the editor to do it the easy way is out of the question for many reasons, I think the best course of action is to replace the old Summon command, with Shock, then replace Shock with my new "Techs" command (you can change the name via editor afterwards, thats just what I named it off the top of my head. Guess I could name it "DaFrce" by default but thats just goofy). Doing this would allow it to not fall into special spell calculations range, and allow any magic (or anything considered magic) to be placed in the menu. Yeah, cool beans.

However it gets done, at the end of it all it will add a new command list (actually two) for spells and such. Editing it won't be as simple as I wanted but still easy. No hex-molesting, just a little tickling required to edit the list. Easy enough that it can be explained.

On a side note, I also left room in the code for adding in a proper check for MagiTek (if you wanted normally Terra's special list to go to someone else, or several someone elses, so that it doesn't require heavy rewrites to make that change afterwards). I didn't leave space in the new command to add multiple checks easily, but it does have room for one character check (stock it will check for any character guest slot 1 or less, but one byte change and you can move that to something like "Edgar or less". Or easily make it work like Magitek where one character gets list 1, and everybody else gets list 2.) In short I tried to make it a little versitile. Its a small patch intended to be added to a hacked game, not a full game hack, so yes it needed to be at least a little flexable to fit more uses.

Last but not least, I won't make any promisses that this patch will be compatable with anything. That being said, it doesn't change anything in C2 except a few pointers, in C1 in changes a pointer and two blocks of MagiTek's code to handle the seperation of the two commands (the block for drawing the menu and the other block that loads targeting data and the actual spells) but in neither case does it go outside of the normal code boundries. The only new, formerly free space (well it would be "free space" if I hadn't put code in it, so yes formerly free) is a small block of code out near the end of a normally expanded Rom (the expansions done via usME). Even that code can be moved around pretty freely if required by changing several jump commands so it can be made to work with other hacks one way or another.

Think that covers it, will post it in a day or two after I've made the new adjustments.


The only true wisdom is knowing you know nothing.
  Find
Quote  
[-] The following 4 users say Thank You to Catone for this post:
  • Badass (12-08-2015), C-Dude (11-24-2021), Gi Nattak (07-22-2022), SSJ Rick (08-06-2022)

#2
Posts: 89
Threads: 2
Thanks Received: 2
Thanks Given: 1
Joined: Jul 2009
Reputation: 5
Status
Vampire
This is amazing. it gives guest/mercenary characters so much potential! so somehow the command for shock works better for calling the skills than summon does? interesting im curious what their original intent for 'Summon' command was but actually i assume it isnt a dummied command but the built in command all characters already have when eqipped with an esper?
  Find
Quote  

#3
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
Different set of commands for Esper Summon, than Summon. That being said, they are both run as "command 19". Thats why Esper summons, through the magic menu, are calculated with Espers being the start of that casting list. My changes didn't effect Esper summon, other than what spell # they start at, so the Summon command must be run before the Esper summon code, possibly jumping into it mid stream, hence the bypass of only casting once. However, since they are both calculated based off the same number (accessed by using the command #19 as index) I can't change the calculated value (or for that matter much of the original code for summon) without breaking Espers everywhere. I would almost guess it was added as a "why not" considering it didn't require much extra code and the command slot was already set.

I don't forsee "Shock" having that problem though, running as command 19 (might have to guess around to find the correct spell number to make it go proper... maybe). Since by default, Shock's number isn't set to calculate, by using it for this instead should allow anything from a short magic list, to a menu of summons, to a mix of Lore/Blitz/Magic.

By swapping it, I could make it work straight with the editor like I intended, it would require adding the extra calculation of spells to that list (and expanding it) and it would seriously restrict what could go in the menu. So yeah, it will be hex edit only, but easy and open.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#4
Posts: 89
Threads: 2
Thanks Received: 2
Thanks Given: 1
Joined: Jul 2009
Reputation: 5
Status
Vampire
A hex edit of 8 commands is easy enough for anyone who already uses usme and can see the values. is the health command the same way? i recall changing health to use the formula for "Pearl Wind" (Much better!) on a side note with a custom gfx that looked like a rainbowy "overcast" lol
  Find
Quote  

#5
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
Health and shock both use a much much more simplified ... guess you could call it a "block" of code... if you put them both together maybe.

Can get the C2 dissasymbly and look at the adress given in the other thread to see for yourself. C2 is documented very well, almost book like in the reading.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#6
Posts: 89
Threads: 2
Thanks Received: 2
Thanks Given: 1
Joined: Jul 2009
Reputation: 5
Status
Vampire
health and shock seem so simple but these are game breaking abilities. (well when u change healths formula to pearl wind" i hate to sacrifice them. i wish there were more commands like these to utilize
  Find
Quote  

#7
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
Pretty sure nobody has figured out how to add new commands, so making more like them is really really easy, what to give up in order to use them is another story. Only so many to go around. So when something is replaced, its usually replaced by something more versitile than a one spell skill.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#8
Posts: 89
Threads: 2
Thanks Received: 2
Thanks Given: 1
Joined: Jul 2009
Reputation: 5
Status
Vampire
coin toss, capture, jump, control, and especially posess.
honestly i feel like characters with: sketch, morph, runick, got shafted. yes they had magic going for them mid game but nothing sets them far apart other than how u train their stats. even steal is kinda boring but with the relic id rather replace steal with 'throw' like u evolved him into a ninja and runic into shock etc. and morph isnt so great mid/late game (i wish morph was just a random cast of semi badass skills like flare star or hyper drive etc)
  Find
Quote  

#9
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
I agree Possess would be a good one to replace. Sure, it serves a purpose where it is, while it last, but worthless beyond that, so yeah good one to replace.

I've always felt an item to turn Runic to Shock would be a nice one but to do it easy you'd need to replace one of the other skills that switch based on an item. Something I added for personal use awhile back was make Locke's Fight command work as Capture (there's a thread on it somewhere, was a little work cause for praticality you have to remove the "nothing to steal" message.) I enjoyed the game with it, but most would probably say unbalanced. The reason I mention it now, in theory, you could take that off an item and use the code space to make Runic switch to Shock. Then it's just a matter of attaching it to any item. The only questionable part of such a patch would be if the user wanted Capture either gone or combined with Locke's fight.

While I never was overly found of Jump (to little dmg boost for the amount of time it takes to execute imo), but it is kinda symbolic I guess. That and I'm kinda fond of adding it as a skill directly (goes good with a FF4 Kain sprite). Course, using the replace command code and item for it to convert Runic/Shock might be something todo. Might look into that one.

Sketch is a little to tightly tied to the story for a general use replacement patch. Morph is kinda the same boat, just more of a pain to replace. Coin Toss I never cared for, mostly just because I'm cheap. Would be something to replace, just a matter of what would be fancy enough to replace it with.

Definatly some ideas to think on.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#10
Posts: 89
Threads: 2
Thanks Received: 2
Thanks Given: 1
Joined: Jul 2009
Reputation: 5
Status
Vampire
well jump was great in ff4 given charachter limitations but here its just a waste of time. a cute relic from the past but makes NO sense im this game

Take replace fight with replace runic
and replace runic with shock. which then shock can be set as a balanced skill im usme
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite