јAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=975e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index6fb2-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index6fb2-2.html.zxехg^џџџџџџџџџџџџџџџџџџџџШ0P.šOKtext/htmlISO-8859-1gzip0|жšџџџџџџџџTue, 10 Mar 2020 19:25:33 GMT0ѓАА Ў0ЎPЎ€ЇВ№Ўехg^џџџџџџџџv)š Show Posts - chillyfeez

Show Posts

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


Messages - chillyfeez

976
Final Fantasy IV Research & Development / Re: The Drawing Board
« on: January 13, 2014, 11:23:58 PM »
Ok

977
LordGarmonde, lemme try to explain...

Every bit of information in the game, obviously, has its own starting point within the ROM.
The way the game knows how to find that starting point is by referencing pointers, often grouped together right before the part of the ROM designated to house the data in question.

Now, if you change those pointers, you can change where the beginning of that information is, and the game will handle the change seamlessly. One could, in theory, switch the data for the opening events with the data of the closing events and (as long as they fit I each other's spots) the game would play exactly as normal, as long as the pointers were changed to accommodate the changes.

NOW THEN... presumably, when first programming the game, the developers did not know exactly howlong the data for the opening events would be, BUT, they had a ballpark, so they set aside a block that was a bit more than long enough, set the pointers, and moved on until such time that the opening events were programmed.
Later, when the opening events were programmed, it turned out thatthere was extra space at the endthat was not needed. At that point, instead of moving a shitton of data around and changing a bunch of pointers, they just left the empty space, filled presumably with FFs.

Flash forward to now. In FF4kster, Pinkpuff has programmed the instructions to recognize unused space between events and, well, squeeze it out, so to speak. The pointersareautomatically adjusted bythe program, and any empty space is gathered together after the end of the last event. This, if nothing else, helps the hacker knowhowmuch extra space is still available for more events, or longer events.
When one loads and saves a clean FFIIUS ROM with FF4kster, the program does not just read the book then put it back on the shelf. It looks at the book, finds the empty pages, tears them out, gathers them together, and replaces the at the end of the chapter. Now an aspiring reader could pick up the book, look at the end of a chapter, and kmmediately know how many pages are available for edits and rewrites.

Hope that helps.
Please excuse multiple typos. I'm kind of in a hurry right now.

978
Final Fantasy IV Research & Development / Re: Fun with Summons
« on: January 13, 2014, 09:08:32 AM »
Yep, that did it!
So now I know, and I have an unmodified - but saved with FF4kster - ROM that will henceforth be known as "Patch Base.smc," so I can make patches that don't screw up people's hacks.
 :happy:
The patch above will now change Odin into Phoenix.

However, it should be noted that Phoenix's graphics overwrite Odin's, so the Odin enemy will be screwed up (looking). I have no immediate plans to change the Odin enemy into a Phoenix enemy, so just be warned of that if you patch Phoenix into your hack - you'll have to rewrite the King Baron joining you as Odin story a bit. Or, you can use the info in this thread to make a fight-able Phoenix yourself!

979
Final Fantasy IV Research & Development / Re: Fun with Summons
« on: January 13, 2014, 05:00:06 AM »
I think I may have figured it out. I did make a few changes using FF4kster - to spells, not events, specifically the Odin (now Phoenix) spells. I'm thinking that FF4kster, bless it's little automiton heart, when saving changes also looked at the event data and said, "this would be far more effecient if I..." So even though the events were not edited, the event data was.
Does this sound like a plausible scenario, Pinkpuff? If so, I'll take one more stab at this...
It's a testament to how useful FF4kster is - I had forgotten I even used it. I mean, why would anybody change spell data any other way at this point?

980
Final Fantasy IV Research & Development / Re: Fun with Summons
« on: January 12, 2014, 06:54:19 PM »
No, I've got the opening events made. I pretty much have "the first chapter" completed - from the intro (which is not nearly as long as the original game's intro, but probably runs around seven minutes), the initial castle, first "dungeon," up to the first boss (which is not a final product yet).
The preview I'm working on will have all that, then will cut to an interactive "meet the cast," where you'll get to test each character and learn a bit about their backstories (most of them are future versions of already existing characters in the FFIV universe).

981
Final Fantasy IV Research & Development / Re: Fun with Summons
« on: January 12, 2014, 04:58:46 PM »
OK, I really have no idea what's going on here...
I re-made the Phoenix patch (in the previous post, above). It no longer ruins FF4kster compatibility, and it doesn't seem to mess anything else up... except, for some reason it removes any changes made to the Opening Events. This is very odd, because in making this patch, I took two identical ROMs, made the Phoenix changes by hand on my hex editor (and the graphics on Tile Layer), and created the patch. I never touched the opening events... 
:wtf:
Well, whatever. This patch will work great, as long as you only patch it to a ROM that has untouched Opening Events.

983
I'm having trouble visualizing what you're saying. Can you post the code for the command as is so far?

984
Depends, I'd think...
Would the spells be hard-coded into the command and entirely dependent on specific harps, or would they take spell data from the weapon itself, thereby allowing a hacker to create his/her own new harps that would work with the command?

985
I don't know if this helps you or not... and I can't say I've ever really looked at thow the graphics are actually encoded for the tilesets, but FFTools seems to indicate that:
-Airship and Ship are different tilesets
-Lunar Whale, Tower and Giant are all different tilesets
I imagine it's probable that these tilesets share graphics tiles, but it seems the tilesets themselves are different (according to phoenix, anyway).

987
I take it you know then how to darken a command so it cannot be used, correct? Or are they activated completely differently from a chosen selection? Or does it build up over five attacks using this command eventually using a 5 Attack string?
The activation is automatic and (basically) random.
I cannibalized auto-hide in order to make it work (thanks to your research on the subject).

Conditions for auto-hide:
-Character is in critical status
-Character is Edward
-Character is not already hiding
Results in:
-Character targets self
-Character executes Hide

Conditions for limit break:
-Character is in critical status
-Character's lower HP byte has bits 0 and 1 set (mathematically, this means [HP] - 3 is evenly divisible by 4)
-Character has not already used a limit skill this battle (Dropped Item byte is 00)
Results in:
-Character targets all enemies
-Character executes "limit break" ability

Now, the Limit Break ability checks the character's Sprite/Class byte ($2001,X), then based on what value is there, re-targets if necessary and queues a Limit skill - One of Four new abilities (of which Attack Barrage is one) and Four super-spells (Phoenix is one, and the other three are beefed-up versions of Virus, Holy and Cure), depending on which character is limit breaking.

So the activation, like in FFVI, is essentially random. That is, it's not unpredictable, but it's nearly impossible to force. While I did this because it was the easier way to go (I imagine, given enough time and motivation, that I could make a conditionally darked-out, user-initiated command, but I'm not sure I have either), I also prefer for Limits to be, well, limited. I personally have abused the living hell out of them in FFVII and FFX and find the inability to do so in FFIX refreshing. I was considering, though, working in a high-level white magic spell that essentially forces Limit conditions so that for a price, a high-level player could use them (still only once per battle) at will, sort of reminiscent of the Aura status in FFVIII.

988
OK, Attack Barrage:
Code: [Select]
A9 CO LDA #$CO
8D C4 33 STA $33C4 ;Load attack animation
A6 A6 LDX $A6 ;Load character's slot into X
FE 73 20 INC $2073,X ;+1 to "dropped item" byte
BD 73 20 LDA $2073,X
C9 05 CMP #$05 ;Check if "dropped item" byte is 05
F0 04 BEQ $04 ;If it is, skip the next two ops
A9 ** LDA #$** ;Load [whichever command this is] into A
80 02 BRA $02 ;Skip the next op
A9 00 LDA #$00 ;Load 00 [Fight] into A
9D 51 20 STA $2051,X ;Store A in character's next command
20 99 C4 JSR $C499 ;Jump to attack subroutine
A9 03 LDA #$03
20 C8 85 JSR $85C8 ;Load character's "turn queue" slot into X
A9 08 LDA #$08 ;Load 08 [ready to perform next action] into A
9D 06 2A STA $2A06,X ;Store A in character's "turn queue" status
9E 04 2A STZ $2A04,X ;Store zero in character's "next turn wait time"
EE 0A 39 INC $390A ;Required op to prevent "turn queue" from resetting
60 RTS
Now, something to note here - my Limit skills are designed to execute a maximum of once per battle. They won't activate if the character's "dropped item" byte is anything other than 00 (and every limit skill increases the byte by at least 1). If you were to execute this command a second time, the character would attack 255 times before you regain control (2073,X would cycle up to FF then back to zero before finally reaching 05 again).

You could, add a "STZ $2073,X" in there to reset the byte back to 00. That should make the command work flawlessly as many times as you want...
So:
Code: [Select]
A9 CO LDA #$CO
8D C4 33 STA $33C4 ;Load attack animation
A6 A6 LDX $A6 ;Load character's slot into X
FE 73 20 INC $2073,X ;+1 to "dropped item" byte
BD 73 20 LDA $2073,X
C9 05 CMP #$05 ;Check if "dropped item" byte is 05
F0 04 BEQ $04 ;If it is, skip the next two ops
A9 ** LDA #$** ;Load [whichever command this is] into A
80 05 BRA $05 ;Skip the next two ops
A9 00 LDA #$00 ;Load 00 [Fight] into A
9E 73 20 STZ $2073,X ;Reset "dropped item" byte to 00
9D 51 20 STA $2051,X ;Store A in character's next command
20 99 C4 JSR $C499 ;Jump to attack subroutine
A9 03 LDA #$03
20 C8 85 JSR $85C8 ;Load character's "turn queue" slot into X
A9 08 LDA #$08 ;Load 08 [ready to perform next action] into A
9D 06 2A STA $2A06,X ;Store A in character's "turn queue" status
9E 04 2A STZ $2A04,X ;Store zero in character's "next turn wait time"
EE 0A 39 INC $390A ;Required op to prevent "turn queue" from resetting
60 RTS
This adds the needed STZ and alters the necessary BRA op to make this work the way you want it to.

989
I know you've told me before, but I forget (and though I've watched HCBailley's LP, he pretty much sticks to his favorite characters, and Edward's girlfriend is not one of them) - is the effect of piercing sight to assign one random elemental weakness to the target and wipe out all status anomalies? Seems like that's what this code is doing... and I guess jumping to Peep at the end displays a message about which weakness was added? Pretty ingeneous.
I'm not sure my aura code would have worked any better to this end, unless you wanted to compound multiple weaknesses.

Regarding your cracking the AV code... I'd be interested in seeing what you've found. I've kicked the tires on writing some brand new spell animations for my hack, but so far have dismissed the notion as beyond the scope of my knowledge.

My holiday season is finally over (that is, it's back to business as usual at work and I'm finally done visiting various branches of the family tree) so I plan to get back into hacking more. I'll post the code for my "attack barrage" today per your request.

990
Ah, Rapid Fire... I don't think FFIV's system allows for that, unfortunately. There seems to be no way I can tell to refresh the audio-visual code to show more than one Character Animation & Spell Effect before each action is taken, that might require more exploration though.
One of the Limit skills in my (I swear!) forthcoming hack is something I've been calling Attack Barrage (they don't have displayed names, so the name is really irrelevant). The skill is five consecutive attacks with no wait time between. This is achieved by manipulating the wait time (at 2A04,x as discovered in my "whose turn is it" thread) within the command code and making tallies of how many attacks have been used in the character's Dropped Item byte (which is unused for PCs). It works well, though takes a while, and other characters cued for a command can act in between its attacks. But this is the only way I could think of to execute such an attack.