øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=765e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexb1c3.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexb1c3.html.zxÏåg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P.DOKtext/htmlISO-8859-1gzip0|ÖDÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:25:26 GMT0ó°° ®0®P®€§²ð®Îåg^ÿÿÿÿÿÿÿÿÞ$D 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

766
Is it possible the flag set when tellah leaves determines whether the whole "spoony bard" event takes place?

767
Probably. I never bothered to learn how conditional speech really works. If it hinges on one flag, I usually put both states in there to save myself having to correct it later. Yes, that's kinda lazy of me, I know.

768
Probably easy enough to find now that I know this. I'll put it on my to-do list.

769
No, it's not necessary now since I figured out the problem more specifically. As a matter of fact, I can only confirm that it occurs if you do the following:
Speech 1 = Event A, If and only if flag 254 On
Speech 2 = Event B, If and only if flag 254 Off

Changing to flag 88 works just fine.

770
*sigh*

New bug to fix...
For some reason, moving a character in and out of the party multiple times can cause unwarranted level-ups.
I think I know what's going on, but the fix will take some more time.
God, this is a helluva lot more complicated than I even expected originally. But I don't want to release anything buggy, or else what was the point in remaking the patch?
 :bah:

771
Hey PinkPuff,

I think Ff4kster's having trouble editing NPCs, but maybe I'm just fried from what I've been working on...
Seems like (and this is even happening with a clean ROM) if I try to add extra speech data to an existing NPC, it doesn't save right.

For instance, I'm trying to a) change what the soldier outside of the training room says, and b) give him a second thing to say based on event flags. None of these changes are saving properly.

This is actually the last thing standing in the way of making my Shadow Party hack play-testable (as well as testing if it's fully compatible with Ff4kster, which I am trying to do).

 :edit: Upon further tinkering, it looks like it's related to making things conditional upon high numbered event flags (for instance, here I was trying to make different events happen when talking to the Baron Training Room soldier depending on whether flag 254 was set or not).

772
Just a random helpful thing I figured out:
You know how, when you are in the menu and you go to Edge's magic screen, it says Ninja instead of Black, but it never does anything like that for any other character, even if you give that character "Ninja" as a command instead of "Black?"

$01/AFB2   C9 12    CMP #$12

12 being Edge's Character ID (Actor, in Ff4kster terms). Change this to, say, C9 03, and Child Rydia will have "Ninja" instead of Edge.

Anyway, thought that may be of use to someone at come point...

773
Yeah, Teen Rydia.
Long story short, because most characters' initial stats are loaded using some index number that is rendered invalid by the way I've redistributed actors, I was using actor value  - 1 to index initial stats, but Teen Rydia's value is wedged between Edge and FuSoYa and everyone else.

New thing to fix, though: my workaround to skip overwriting stored equipment also skipped loading equipment for the initial load, so I have to rewrite that now... I don't wanna say it'll be done then, because how many times have I said that so far? But I'm gettin' there...

774
Sorry, folks, more unexpected delays. Nothing major, but I've run out of time for today.

I'm this close, but the job I get paid for has to take precedence.
 :lame:

Sorry, I barely even gave myself enough time to write that message earlier. Just so everyone knows where I'm at - I've got the TNLs working properly (totally awesome), but as I was playtesting each character, I discovered that Edge doesn't follow the initial stats pattern that everyone else does. It's probably got something to do with Teen Rydia, and it's probably that I'm using the wrong character identifier to determine his initial stats location (like I should use actor instead of character, or vice versa, or whatever). Anyway I'm going to follow through initial stats loading to see what the game does by default, and probably just copy those steps, but if that proves to be unnecessarily complex, I can think of various other quick fixes for the problem...

775
Got it. The info on rb.thundaga.com is off by 1 for Edward's data. He starts at B9F3, meaning his difference is 20.
So, great, that's settled. I'm done messing with this for the night but I think I'll be all done with it tomorrow and ready to post!

 :edit: now that I think about it, this makes perfect sense - it allows the game to use the same formula to find the level data for a specific level regardless of character:
(Current level - 1) * 5 + Character's Pointer + 0F/0000 = Level Data Offset

776
OK, this is almost finished, but I've run into a hang-up and I'm looking for help if anyone knows what's going on here...

The characters' level up data don't match up with the pointers on a 1-to-1 basis. Theoretically, one should be able to add the pointer value to 0F/0000 (LoROM) to find the beginning of the data, but this only works for Rydia and P.Cecil. everybody else's data is off by some. For a lot of characters, it's off by 2D, but not all. Here's what I've got:

Code: [Select]
CHAR POINTER DATA(LoROM) DIFF
---- ----- ------ ----
CECIL B4FB 0F/B528 2D
KAIN B62F 0F/B65C 2D
RYDIA B790 0F/B790 00
TELLAH B892 0F/B8F1 5F
EDWARD B9DF 0F/B9F2 13
ROSA BB13 0F/BB40 2D
YANG BC47 0F/BC74 2D
PALOM BD7B 0F/BDA8 2D
POROM BEAF 0F/BEDC 2D
P cEC C010 0F/C010 00
CID C112 0F/C171 5F
EDGE C1FB 0F/C273 78
FUSOYA C267 0F/C35C F5

This difference affects the automatic adjustment of TNL data when characters are loading from the shadow (since I'm not storing that in the shadow anymore).
Now, I can just write those differences into the coding to make this work just fine, but I don't know if they will remain consistent if the hacker were to change level up data. So... does anyone understand why these differences exist, and/or where they come from?
I'm thinking they may, possibly, have something to do with the character's starting level, since a lot of characters start at level 10 and a lot of characters have a difference of 2D, plus Rydia and P.Cecil, who both start at level 1, bot have a difference of 00, but that's the best I can figure, and even still that doesn't really help, since 2D is not a multiple of 0A (or 09).

Thoughts?

 :wtf:

 :edit: alternatively, if anybody can confirm that these differences do not change at all regardless of how much you edit level up data, then I can just figure them into the coding and be done with it...
 :edit: 2 - It's definitely related to the character's starting level in some way...
Code: [Select]
Starting level     Difference
-------------      -----
01 (1)             00 (0)
05 (5)             13 (19)
0A (10)            2D (45)
14 (20)            5F (95)
19 (25)            78 (120)
32 (50)            F5 (245)
Anybody understand the pattern here?
 :edit: 3 oh, there it is...
(S-1)*5=D
Where S is starting level and D is difference.
except Edward's difference is 19 instead of 20?! Again, I say  :wtf:

777
Final Fantasy IV Research & Development / Re: Change Command
« on: July 31, 2014, 12:45:55 PM »
Also, be aware that these are only applicable to a v1.1 ROM. The offsets for version 1.0 are off by a small amount, making the list of pointers entirely different.

778
Final Fantasy IV Research & Development / Re: The Drawing Board
« on: July 29, 2014, 11:27:52 AM »
An early goal of mine which I've still never figured out has been how to make the eight random level up possibilities occur at the starting levels,  unfortunately all of my attempts came up glitched or blank. I would love though for stat boosts based on RNG though, it would add a bit more variety to the game and create different setups whether intentional or not. I do wonder if this would work better from a class perspective than an age perspective though in some respects.
You mean add some randomness to initial stats? That's a fun idea. There was this Dungeons & Dragons game for Sega Genesis that would let you pick four characters for your starting party then gave you unlimited "re-rolls" to determine your initial stats. I used to spend like an hour starting a new game with that option... On second thought, maybe that's a terrible idea ;)

779
Yeah, as long as the internal registers are set to their proper values (direct page =0000, data bank =7E.  As mentioned above, I had to learn how to do this), it works just fine. I also had to set a couple of bytes in RAM so that the level up routine runs as though it were leveling up a shadow character, so it doesn't try to display "soandso gained a level," "learned such-and-such spell."

780
Well, after the character loads from the shadow, the game runs through the level up routine to account for all of the exp collected while in the shadow. So, if you put level 1 Rydia in the shadow, then increase her exp to max, then load her back into the party, the game runs through the level up routine 98 times. The whole process (for that many levels) takes about half a second or so, so if you're actually watching the RAM data at 7E:1000 (or wherever the applicable character slot is), you can actually see it roll up from lv 1 to lv 99.