øA slickproductions.org /forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=printpage;topic=2396.0 e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index9c61.html slickproductions.org /forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2396.0 e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index9c61.html.z x YFh^ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ @> ú§ OK text/html ISO-8859-1 gzip @øÕ ú§ ÿÿÿÿÿÿÿÿ Wed, 11 Mar 2020 02:17:22 GMT 0ó° °® 0® P® €§² ð® YFh^ ÿÿÿÿÿÿÿÿ6" ú§
Lets say we convert the Viewer into editor. What benefit we will get from it (compared with existing ones)? Personally I don't want to create 'yet another editor'. If we will do new editor it must have more options, to be easier to use, ...One obvious reason is to just depend on a single tool rather than using multiple ones. And as you mention, simpler tools will attract more people. There is no Read me nor Help section in the viewer and since it also handles the GBA version, some features are not present for the SNES and will throw an error rather than just being disabled...
Anyway IF you have a clear vision of how a new editor will look and what new features it will have, lets do it. Please share in details your vision, the layout of future editor. We can start with something and then upgrade/improve. What is your suggestion to start with?
Something I'm not fond of the current viewer is that it tries to have all info in "one window"Hehe that is a 'fault' by design. I like it that way - when I need an info, if I can get it just by moving my eyes - goal is achieved :D
While is nice quickly jump from one tab to another it feels like sometimes the info is scattered and other times is clustered. Also, the tabs feel out of order.I know it feels that way ... My goal was to separate info in logical section (tab), and put all possible info there. So when you use it - sometimes it fills filled to to rim (because there is so much to show), sometimes it feels empty (because there is so little info)
Something that IMO screams a must have in order to have a new editor is the option to edit sprites (be it for characters, enemies, backgrounds, etc).Indeed, in general graphic and music editing is a major whole and one of the reason for people not-willing to create a major mods for FF5.
IIRC the viewer still misses a couple of options that my tool does have, like:
- Base stats table (HP, MP, Exp)
- Shop info
SLOW - ATB takes twice as long to fill.
HASTE - ATB takes half as long to fill.
STOP - Timers associated with the target will not increase (ATB,...)
CONTROLLED - Monster's AI script is overridden. They will not follow any React scripts or Condition scripts and overrides being Flirted as well. When the controller's ATB fills up, they can make the monster issue one of the attacks that are listed under "Control" in the Monster Data section. The controller can choose who to target with the attack as well.
INITIATIVE: Wielder begins the battle with their ATB full (always gets the first chance to act, used by Masamune)
---------------------In here, in point no. 4 the ATB is not increasing but actually decreasing as you can observe with the following memory addresses. When one of these address reaches 0, then the player/enemy will be able to perform their command:
6.11) ATB CALCULATION
---------------------
1) Everyone's ATB is a measure between 0 and 255.
2) Initial values at the start of battle = ??
3) Eveyone's ATB increases at a constant rate (unlike FF6-9).
4) Once someone's ATB reaches 255, they can perform an action.
5) After performing an action, their ATB gets "reset" and is calculated as follows:
i) Let N1 = 120 - Agility + (Equipment Weight/8). Minimum value = 1.
For Monsters, use Speed instead of Agility, Equipment Weight = 0.
ii) If they have Haste status, N1 = N1 / 2. Minimum value = 1.
iii) If they have Slow status, N1 = N1 * 2. Maximum value = 255.
Note that Haste and Slow are mutually exclusive statuses. You can only have one or the other, but never both at the same time.
iv) ATB = 255 - N1
7E3D7F XX 1st Player Timer Remaining Duration - ATB Gauge
7E3D8A XX 2nd Player Timer Remaining Duration - ATB Gauge
7E3D95 XX 3rd Player Timer Remaining Duration - ATB Gauge
7E3DA0 XX 4th Player Timer Remaining Duration - ATB Gauge
--------------------------------------------------------------------------------
7E3DAB XX 1st Enemy Timer Remaining Duration - ATB Gauge
7E3DB6 XX 2nd Enemy Timer Remaining Duration - ATB Gauge
7E3DC1 XX 3rd Enemy Timer Remaining Duration - ATB Gauge
7E3DCC XX 4th Enemy Timer Remaining Duration - ATB Gauge
7E3DD7 XX 5th Enemy Timer Remaining Duration - ATB Gauge
7E3DE2 XX 6th Enemy Timer Remaining Duration - ATB Gauge
7E3DED XX 7th Enemy Timer Remaining Duration - ATB Gauge
7E3DF8 XX 8th Enemy Timer Remaining Duration - ATB GaugeTherefore, point no. 4 is actually 0 and not 255 (do to the counter decreasing and not increasing)11.2) AI SCRIPTWhen a monster reacts, his ATB momentarily changes to 1, so in the next tick (frame) it can perform the reaction and then goes back to where its ATB bar was.
This denotes a list of commands that the monster will follow during battle. After each command, the monster must wait until his ATB fills again before he can execute the next command. The exceptions are Change Target and Set Variable which do not take up any time. Also, commands executed due to React: occur immediately. Note that "Nothing" indicates that no action is taken that round, but the ATB must still fill up before executing the next command. Once the end of the list is reached, the AI goes to the beginning of the list and continues the cycle.
Note that the monster will not follow its AI script if it has Berserk, Charm or Controlled Status and will not execute any React: scripts if it has Stop, Paralyze or Sleep Status.
There are still few unknowns:1. The initial ATB value is in fact the "120 - Agility" part (Of course, it will depend too on whether you get a Pre-emptive or Back Attack). For example, lets take Butz default stats which has an agility of 25, so 120-25 = 95. So it's expected that his ATB is either 95, 96 or 94 (due to the chance of +/- 1). Each time you end your turn, the ATB will go back to 95 and start decreasing from then
- Initial value at the start of a battle. I had examine that code before, but I didn't find any initialization, so it looks kind of random. In other FFs (FF7 for example) ATB fills even after the battle is over, so if you wait on victory animations you can always start with full ATB. I wonder is something like this happens here ...
- "Eveyone's ATB increases at a constant rate" - whats the rate? 1? Does haste/slow affect that rate?
- What will happen if 2 or more participant end with ATB 0 at the same time?
(01=On, 40=?, 80=?)
7E3CFB XX 1st Player Timer Status flag - ATB Gauge
7E3D06 XX 2nd Player Timer Status flag - ATB Gauge
7E3D11 XX 3rd Player Timer Status flag - ATB Gauge
7E3D1C XX 4th Player Timer Status flag - ATB Gauge
--------------------------------------------------------------------------------
7E3D27 XX 1st Enemy Timer Status flag - ATB Gauge
7E3D32 XX 2nd Enemy Timer Status flag - ATB Gauge
7E3D3D XX 3rd Enemy Timer Status flag - ATB Gauge
7E3D48 XX 4th Enemy Timer Status flag - ATB Gauge
7E3D53 XX 5th Enemy Timer Status flag - ATB Gauge
7E3D5E XX 6th Enemy Timer Status flag - ATB Gauge
7E3D69 XX 7th Enemy Timer Status flag - ATB Gauge
7E3D74 XX 8th Enemy Timer Status flag - ATB Gauge
2. if you have 30 AGL you need 90 ATB ticks, 90 AGL needs 30 ATB ticksOK, so the ATB decrements with 1 each tick, right???
those ticks happen several times per second, slow/haste does not affect that anymore from here.
1. The initial ATB value is in fact the "120 - Agility" part (Of course, it will depend too on whether you get a Pre-emptive or Back Attack). For example, lets take Butz default stats which has an agility of 25, so 120-25 = 95. So it's expected that his ATB is either 95, 96 or 94 (due to the chance of +/- 1). Each time you end your turn, the ATB will go back to 95 and start decreasing from thenAre you sure? This is calculated when timer hit 0, but I'm not sure is that the case when the battle starts ...
I also have these other addresses, but I haven't played with them so I don't know exactly how they work. They are sort of controls for the ATB behavior.Yeah there bunch of tables in memory connected with timers (ATB been one of them). According to LightPhenix research (just add +$A for Player 1):
3CF1 Status Flag 1 - On; 0 - Off; 80 - Ending
3D75 Timer Value
3DF9 Timer Initial Value
3E7D Creature List Counter A counter used to rotate through each creature in the list above
3E88 Process Ending Timer Flag Set when any creature's timer reached zero. The code only handles ending one creature per status each frame.
3E93 Random Creature List A randomized list of each creature position (0-B), generated when battle starts at C2/1FD2
3E9F ???
3EB7 Creature Timer Ending Set to whichever creature number's timer is ending this frame
3EC2 ???
3ECE ???
3ED9 Timer Decrement Duration Certain timers do not decrement every frame. These values are held in D1/2976
3EE4 Process Timer Flag Set when the decrement timer is zero; true when processing, false when not needed
OK, so the ATB decrements with 1 each tick, right???yes, also a "tick" takes about 3-5 frames usually for me
Oh goodness yes please make a full feature editor for FFV. I really want to make an FFV hack after my FF Postlude project and it would be incredibly helpful to have something akin to Pinkpuff's ff4kster. Please take it into consideration at least! :wink:Making an editor is not my thing. It require a ton of work, but mostly a good interface that the user will easily use to create things. When I create any program I have a vision about it. It doesnt mean sharp detailed image, rather idea how things work as a whole, a common concept, which then I implement and make it vivid image.
I just noted how "busted" the old status is; it drains stats every 5 ticks, so between two turns you go from normal to totally useless: -18 everything per turn if you had 30 AGL, ouchHehe, yes usually on the second turn you start to feel the 'damage' Old has done :D
2. if you have 30 AGL you need 90 ATB ticks, 90 AGL needs 30 ATB ticksOK, so the ATB decrements with 1 each tick, right???
those ticks happen several times per second, slow/haste does not affect that anymore from here.1. The initial ATB value is in fact the "120 - Agility" part (Of course, it will depend too on whether you get a Pre-emptive or Back Attack). For example, lets take Butz default stats which has an agility of 25, so 120-25 = 95. So it's expected that his ATB is either 95, 96 or 94 (due to the chance of +/- 1). Each time you end your turn, the ATB will go back to 95 and start decreasing from thenAre you sure? This is calculated when timer hit 0, but I'm not sure is that the case when the battle starts ...QuoteI also have these other addresses, but I haven't played with them so I don't know exactly how they work. They are sort of controls for the ATB behavior.Yeah there bunch of tables in memory connected with timers (ATB been one of them). According to LightPhenix research (just add +$A for Player 1):Code: [Select]3CF1 Status Flag 1 - On; 0 - Off; 80 - Ending
3D75 Timer Value
3DF9 Timer Initial Value
3E7D Creature List Counter A counter used to rotate through each creature in the list above
3E88 Process Ending Timer Flag Set when any creature's timer reached zero. The code only handles ending one creature per status each frame.
3E93 Random Creature List A randomized list of each creature position (0-B), generated when battle starts at C2/1FD2
3E9F ???
3EB7 Creature Timer Ending Set to whichever creature number's timer is ending this frame
3EC2 ???
3ECE ???
3ED9 Timer Decrement Duration Certain timers do not decrement every frame. These values are held in D1/2976
3EE4 Process Timer Flag Set when the decrement timer is zero; true when processing, false when not needed
I was about to post how I did a bunch of research trying to increase the number of timers, and didn't realize I had already posted it here. Good to know.Hey LightPhoenix you did excellent research on timers. But you shared it in a thread that is easy buried and hard to find. Please make a Wiki topic and share all your research and thoughts (even if you are not sure about). Personally I made an Excel table with what I consider the essence of your post for easy reference :D